Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysyłanie formularza zawierającego " lub ' generuje error 406
husky83
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 8.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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

Ten post edytował husky83 2.02.2014, 17:00:22


--------------------
Husky 83 - Galeria zdjęć psów zaprzęgowych
Go to the top of the page
+Quote Post
tomxx
post
Post #2





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

Ostrzeżenie: (0%)
-----


Spróbuj:
  1. $zmienna = <<<ID
  2.   /* zawartość formularza */
  3. ID;


Ten post edytował tomxx 2.02.2014, 17:20:30
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@tomxx to nie ten poziom bledu
@husky faktycznie google mowi o rozwiazaniu ktore podales. Zakladam, ze formularz wysylasz POSTem a nie GETem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
husky83
post
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 8.12.2005
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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ę.


--------------------
Husky 83 - Galeria zdjęć psów zaprzęgowych
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:46