Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нужно ли экранировать переменную при передаче в header?
Форумы портала PHP.SU » » Вопросы новичков » Нужно ли экранировать переменную при передаче в header?

Страниц (1): [1]
 

1. dqdq - 14 Января, 2013 - 13:57:13 - перейти к сообщению


Безопасно ли передавать $_GET['url'] напрямую или нужно что то делать?

???
2. vvn - 14 Января, 2013 - 14:02:55 - перейти к сообщению
В $_GET['url'] может быть всё что угодно, типа - "бла,бла,бла" или "xxx.com" ....
Если не секрет, для чего вам понадобился такой редирект?
3. DelphinPRO - 14 Января, 2013 - 14:52:39 - перейти к сообщению
вроде безопасно. ну введет юзер что-то не то, перекинет его не туда - сам виноват. ущерба системе не будет
4. dqdq - 14 Января, 2013 - 15:58:39 - перейти к сообщению
Вот из документации

Цитата:

4.4.2 and 5.1.2 This function now prevents more than one header to be sent at once as a protection against header injection attacks.


Вот мое решение

PHP:
скопировать код в буфер обмена
  1. header('Location: '.str_replace("\r","",str_replace("\n","",str_replace('&','&',htmlspecialchars($_GET['url'], ENT_QUOTES)))));


выше в коде, там где замена, нужно написать html код символа &
этот форум сожрал код и заменил на &
5. spsu - 14 Января, 2013 - 17:42:36 - перейти к сообщению
dqdq, вообще лучше кроме своего домена через Location не редиректить, т.к этим потом могут спамеры воспользоваться.

 

Powered by ExBB FM 1.0 RC1