首页 > 解决方案 > 对 url $_GET 提交中的 xss 攻击的担忧

问题描述

好的。上周我遭受了竞争对手论坛的 XSS 攻击和 SQL 注入......

1)我意识到我没有在 register.php 页面的一个小 ajax 函数中使用准备好的语句(我使用 PDO),它检索用户是否存在......现在修复了,它是user=“$user”`.. ..直接...好的。

2) 我根本没有使用 CSRF 令牌,现在我已将 csrf 令牌放入所有使用该结构的提交表单中<form></form>

3)我现在输出htmlentities()

4)我验证输入

我想知道下一个

我是否需要清理页面 url 中使用的每个 $_GET[""] 分页数字按钮?p=$_GET["page"] 他们无权访问数据库,它们仅$_GET用于分页,但我读过,如果我有一个$_GET开放且未经处理的...

拜托,我需要知道以避免过度担心 xss 的漏洞,或者知道实施这些漏洞是否$_GET不重要,谢谢。

标签: phpxss

解决方案


当用户尝试在网络上输入“某物”时,就会发生 xss。我认为您使用的步骤是正确的,但是为了更安全,也许您应该使用函数验证每个 $ _GET 输入,也许像这样

    <?php

    function xss_clean($inputs = ''){
        $regex      = "/[^a-zA-Z0-9]/";
        $inputs     = preg_replace($regex, "", $inputs);

        return $inputs;
    }

    //For Example
    $some_input     = isset($_GET['username'])?xss_clean($_GET['username']):'';

    ?>

您可以根据需要更改正则表达式


推荐阅读