У меня проблема с формой в области администрирования моего веб-сайта. Я использую его для изменения отображаемого HTML-текста, он написан на PHP и подключается к базе данных MySQL.
echo "<form action=\"index.php?kat=infos&aktion=upd&kategorie=$kategorie\" method=\"POST\" enctype=\"application/x-www-form-urlencoded\">\n"; echo "<table border=\"0\">\n"; echo "<b>$kategorie</b>\n"; echo "<tr><td><b>Information:</b></td><td><textarea name=\"info\" cols=\"50\" rows=\"7\">$info</textarea></td></tr>\n"; echo "<tr><td><input type=\"submit\" value=\"Editieren\" /></td></tr>\n"; echo "</table>\n"; echo "</form>\n";
Если я введу несколько небольших предложений типа «Это только тестовый текст». и нажмите кнопку отправки, index.php принимает данные и вставляет их в базу данных так же, как должен. Но если я введу длинный текст, как отказ от http://www.juraforum.de/disclaimer_muster/, я получаю сообщение об ошибке 403 в форме submit. Я не думаю, что это из-за более длинного текста, потому что, если я напишу более длинный случайный текст там, он тоже работает.
Надеюсь, ты поможешь мне с этим.
Код статуса 403 означает:
10.4.4 403 Запрещено
Сервер понял запрос, но отказывается его выполнять. Авторизация не поможет, и запрос НЕ ДОЛЖЕН повториться. Если метод запроса не был HEAD, и сервер хочет сообщить, почему запрос не был выполнен, ему ДОЛЖЕН описать причину отказа в сущности. Если сервер не хочет предоставлять эту информацию клиенту, вместо этого может использоваться код состояния 404 (Not Found).
Утверждение об отказе, как представляется, содержит несколько тегов HTML, и они, по-видимому, печатаются без печати на странице.
Моя дикая догадка заключается в том, что на сервере установлена часть программного обеспечения (возможно, mod_security ), которая отвергает ввод, поскольку считает, что это попытка выполнить атаку XSS. Вы можете подтвердить (или отклонить) эту гипотезу, временно удалив символы <и>, прежде чем вставлять ее в текстовое поле.
Вот решение, которое работает для меня:
По-видимому, mod_security не понравилось, что имя textarea было «info». После изменения его в «текст» проблем больше не было, и теперь я могу ввести любой текст, который я хочу.
спасибо за помощь
Просто добавив к этому, чтобы сказать, что у меня также была эта проблема, и оказалось, что это правило mod_security, которое ложно позитивно, что вызвало эту проблему. Хозяин сайта смог переадресовать домен в соответствие с определенным правилом. Правило, по-видимому, было 211580 – «COMODO WAF: SQL Injection Attack».
Вы получите эту проблему при отправке формы с URL-адресом. сообщения об отправке могут быть заблокированы на сервере по соображениям безопасности.
Имела та же проблема. Изменение названия текстового поля с «info» на что-то другое, похоже, сработало.
Я также страдал этой проблемой, пока не выяснил, что с помощью комбинации тэгов HTML и косых <textarea>
поле <textarea>
это вызвало это. Это был также код, который должен был быть вставлен в базу данных.
Я уже использовал mysqli_real_escape_string()
, но это, похоже, не mysqli_real_escape_string()
ситуацию.