#javascript #asp-classic #vbscript
#javascript #asp-classic #vbscript
Вопрос:
Недавно я взял на себя разработку классического приложения ASP после ухода единственного разработчика в проекте. Есть следующий фрагмент кода, из которого я ни за что на свете не могу извлечь выгоду, может быть, кто-нибудь из вас, более опытных парней и девушек, мог бы пролить свет на логику?
В разделе head нашей страницы default.asp код вызывает другую страницу asp с параметром, чтобы загрузить / включить некоторые файлы. Эта страница asp считывает параметр, а затем выбирает массив файлов. Затем он выполняет цикл по этому массиву и для каждого объекта в массиве выполняет следующую функцию:
Sub SendFile(ByRef sFilename)
If Len(sFilename) = 0 Then
Exit Sub
End If
If IsEmpty([__SendFile_sSuffixCompressed]) Then
[__SendFile_sSuffixCompressed] = ".js"
End If
If IsEmpty([__SendFile_fso]) Then
Set [__SendFile_fso] = Server.CreateObject("Scripting.FileSystemObject")
End If
Dim sPath
sPath = Server.MapPath(sFilename)
Dim stream
Dim sData
Set stream = Server.CreateObject("ADODB.Stream")
Response.Write sPath
With stream
.Charset = "utf-8"
.Type = 2
.Open
.LoadFromFile sPath
sData = .ReadText
.Close
End With
OurResponse.Write sData
End Sub
Я бы подумал, что это был бы способ динамической загрузки этих файлов, но не было бы намного проще просто установить условный блок IF вокруг обычной <script src"...>
строки?
Ответ №1:
<script src"...>
Строка загрузит скрипт с действительного URL, но, возможно, это способ для веб-приложения включить файлы сценариев на сервере, которые находятся в другом месте файловой системы, недоступные напрямую по общедоступному URL?
Я не уверен, зачем вам это нужно, потому что все еще можно вызвать эту страницу ASP с общедоступного URL для получения скриптов, однако это действительно не обеспечит вам безопасность, просто запутывание.
Лично я большой поклонник удаления кода, когда это возможно. Попробуйте заменить эту функциональность условным тегом script, как вы упомянули в среде разработки, и протестируйте изменения. Если есть какие-либо скрытые причины для этой бессмыслицы, то вы должны быть в состоянии их найти.
Комментарии:
1. Да, как я и думал на самом деле. Код даже не используется условно, так что, как вы говорите, единственным преимуществом является запутывание имен файлов. Я уже прокомментировал использование этого кода и заменил его более традиционными методами. Я просто не хотел заменять код только потому, что я его не понимал.