• 技术文章 >后端开发 >php教程

    360扫描网站揭示有漏洞

    2016-06-13 13:17:04原创671
    360扫描网站提示有漏洞

    我已经对输入字符串过滤了,但是还会提示。请问如何解决
    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 code
    
    function 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吧.

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 你知道如何用PHP实现多进程吗• PHP与MySQL连接的方法总结• 求解:phpcms模板怎样转码?该怎么解决• php 之 cookie 跟 session 简单解读(笔记)• php怎的快捷知道某个函数在哪个文件用过
    1/1

    PHP中文网