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:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d 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:
<IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </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