Как мы уже знаем, переменные области URL и FORM можно изменить с помощью внешних инструментов прокси.
Например, если кто-то делает такой запрос - http:\\website\index.cfm?a=1&b=2
Таким образом можно добавлять значения в область URL страницы .cfm
.
Точно так же существует ли какой-либо способ добавить/изменить значение для области запроса в ColdFusion без его явной установки в коде.
Я спрашиваю об этом, потому что у нас есть такой код на одной из страниц CFM.
<cfset request.uploadFileDir = application.fileDir & "\upload" />
<cffile action="upload" accept="application/pdf" destination="#REQUEST.uploadFileDir#" filefield="brochure" nameconflict="makeunique"/>
Команда безопасности говорит, что приведенный выше код уязвим, потому что область REQUEST
в JAVA может быть изменена внешними прокси-инструментами. А поскольку ColdFusion построен на основе JAVA, REQUEST
ColdFusion также может быть изменен внешними прокси-инструментами. Это правильное предположение? Являются ли области JAVA и ColdFusion REQUEST
одинаковыми?
Ну и напоследок главный вопрос - Можно ли каким-то внешним запросом к упомянутой выше в примере странице модифицировать область действия REQUEST
или точнее переменную REQUEST.uploadFileDir
?
request
, по их словам, можно подделать? С jsp/servlets у меня сложилось впечатление, что есть две части областиrequest
: get/setParameter() и get/SetAttribute(). Параметры больше похожи на область URL и, как вы сказали, могут быть изменены. Принимая во внимание, что атрибуты являются локальными серверными переменными и не могут быть изменены AFAIK. stackoverflow.com/a/5243798/8895292 - person SOS   schedule 15.02.2018REQUEST.uploadFileDir
получает свое значение. - person Dan Bracuk   schedule 15.02.2018application.fileDir
не использует предоставленные клиентом значения (например, жестко закодированную строку и т. д.), это безопасно. - person SOS   schedule 15.02.2018REQUEST.uploadFileDir
не использует какие-либо переменные области URL или FORM для установки своего значения. Для его установки используется только область приложения. Таким образом, он не может быть изменен каким-либо прокси-инструментом или запросом на страницу. Вы можете опубликовать это как ответ. - person Pankaj   schedule 16.02.2018request.get/setAttributes()
и не может быть изменена вне сервера (кроме как косвенно, как Дэн упомянул позже). URL-адрес/форма CF похож на request.get/setParameters. Вы также можете запустить некоторые тесты, чтобы увидеть поведение самостоятельно, используя страницу JSP: helpx.adobe.com/coldfusion/developing-applications/ - person SOS   schedule 16.02.2018