我已经对输入字符串过滤了,但是还会提示。请问如何解决
get_magic_quotes_gpc() ? $_request['key'] : addslashes($_request['key']);过滤方法。
search.php?key=your%20story%3c/title%3e%3c/head%3e%3cbody%3e%3cscript%3ealert(42873);%3c/script%3e
用户输入这个就会在我网站最上面显示网站名称。不解
------解决方案--------------------
your%20story%3c/title%3e%3c/head%3e%3cbody%3e%3cscript%3ealert(42873);%3c/script%3e
不知道你的这个串是哪里来的
your story
------解决方案--------------------
简单的说,addslashes这个只能过滤单引号,其他字符并不能转义,htmlspecialchars这函数不要忘记使用
------解决方案--------------------
get_magic_quotes_gpc() ? $_request['key'] : addslashes($_request['key']);过滤方法。
你这段代码没啊。。。。。
php codefunction escape($value){ $value = is_array($value) ? array_map('escape',$value):htmlspecialchars(trim($value)); return get_magic_quotes_gpc()?$value:addslashes($value);}$_get = array_map('escape', $_get); $_post = array_map('escape', $_post); $_cookie = array_map('escape', $_cookie); $_request = array_map('escape', $_request);
------解决方案--------------------
addslashes是过滤单引号和null字符的, 对标签根本无效, 要展示给用户的非文档内容一律htmlspecialchars.
------解决方案--------------------
很明显是你根据用户提交的k拼接js代码的时候出问题了, 估计你是希望将用户提交的key拼给js动态展示给用户, 仔细检查js拼接那里是否使用了htmlspecialchars吧.
