Принятие фрагментов кода в URL-запросе - PullRequest
0 голосов
/ 11 апреля 2011

Я пытаюсь создать тип приложения HTML-редактор с окном предварительного просмотра. Все работает нормально, за исключением того, что я просто добавил параметры / запросы URL в этом формате.

http://edit.mydomain.com/?code=%3Cp%3EWelcome!%3C%2Fp%3E&type=html

Они работают нормально до тех пор, пока это не будет добавлено в него:

<script type="text/javascript">

Закодировано, это будет

http://edit.mydomain.com/?code=%3Cscript%20type%3D%22text%2Fjavascript%22%3E&type=html

К сожалению, прямое обращение к этому загружает бесконечную ошибку перенаправления.

Затем я попытался удалить все правила переписывания .htaccess (потому что они действительно не нужны на этой конкретной странице), которые у меня были:

RewriteEngine On
RewriteRule ^(.*)/$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://edit.mydomain.com/$1/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)\.php\ HTTP/ [NC]
RewriteRule .+ http://edit.mydomain.com/%1  [R=301,QSA]

Но это привело к тому, что URL с запросом загрузил запрещенную страницу, говоря, что у меня нет доступа к /.

Когда он ранее находился в каталоге, он загружал корневую домашнюю страницу (не каталог), даже несмотря на то, что в URL отображался каталог, за которым следовал запрос.

У меня также есть ощущение, что вчера на какое-то время сервер заблокировал мой IP, потому что сайт неожиданно закрылся для меня и только для меня. Будут ли такие URL-запросы рассматриваться как угроза безопасности?

Удаление <части кода (или закодированного% 3C) исправляет эту ошибку, но, конечно, <отсутствует в коде, который выводится. </p>

Можно ли принять закодированное в URL? Кажется, он отлично работает с тегами

.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

возможно, у вас установлена ​​mod_security.я считаю, что mod_security2 не позволяет управление из файла .htaccess, но более старая версия делает.http://www.modsecurity.org/

Однако я думаю, что вместо того, чтобы возиться с правилами mod_security, лучше найти способ отправки кода в POST-переменной, а не в GET.

0 голосов
/ 11 апреля 2011

Вполне возможно, что ваш <script> тег в параметре URL вызывает какую-то защиту от вторжений на вашем сервере или брандмауэре вашего провайдера.

Такие вещи обычно выполняются с помощью запроса POST, а неПОЛУЧИТЬ запрос.Есть ли причина, по которой ты так не поступаешь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...