Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie formularza zawierającego " lub ' generuje error 406
Forum PHP.pl > Forum > PHP
husky83
Mam olbrzymi problem... Mam pewien formularz, w którym jest kod html - więc również znaki takie jak: " oraz '.
Problem w tym, że mogę wysłać cokolwiek, jednak jeśli wyślę któryś z tych znaków (a może jeszcze jakieś inne, te dwa na pewno), serwer odpowiada błędem 406.
Testowałem formy /" oraz /' - jeśli wyślę w takiej formie, jest ok. Oczywiście można zrobić obejście - skrypt js, który doda slashe przed wysłaniem, ale wolałbym poznać mechanizm błędu i usunąć go bez bawienia sie w js.

Co ciekawe, gdy pojawia się błąd, wykonywany jest plik index.php, zamiast wskazanego w formularzu (aktualnie test.php).

htaccess:
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
  3. RewriteRule ^(.*).html$ index.php?site=$1 [L]

Więc teoretycznie jeśli mam <form action='test.php'>, to nie ma prawa wysyłać do index.php. I nie robi tego, jeśli nie ma błędu. Jeśli jest błąd, przekierowuje do index.php, a $_GET['site'] zawiera 'error/406'.

Czytałem, że wyjściem może być dodanie to .htacces takiego kodu:
  1. <IfModule mod_security.c>
  2. SecFilterEngine Off
  3. SecFilterScanPOST Off
  4. </IfModule>

jednak niestety bez rezultatu.

Dane wysyłam przez POST.

Problem dotyczy serwera az.pl



EDIT:
jednak nie chodzi tylko o cudzysłów i apostrof. Zakazanymi słowami są także iframe oraz style.
Używam ckeditora, ale to samo się dzieje, jeśli wrzucę tekst do zwykłego textarea
tomxx
Spróbuj:
  1. $zmienna = <<<ID
  2.   /* zawartość formularza */
  3. ID;
nospor
@tomxx to nie ten poziom bledu
@husky faktycznie google mowi o rozwiazaniu ktore podales. Zakladam, ze formularz wysylasz POSTem a nie GETem?
husky83
Tak, oczywiście wysyłam jako POST. Jeśli nie ma 'zakazanych słów', to przekierowuje na stronę test.php i wyświetla co trzeba w print_r($_POST). Ale jeśli są te słowa, to przekierowuje z nieznanych mi przyczyn na index.php i wywala w nagłówku błąd 406. Napiszę do administracji, może przesadzili z jakimiś zabezpieczeniami? Z tego co widzę w phpinfo, to serwer niedawno zaktualizowany (Build Date Jan 8 2014 10:37:37 ), a od tego czasu nic nie robiłem, więc może z tym związany jest błąd... Macie jakieś pomysły? oczywiście do administracji też zaraz napiszę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.