如何修复跨站点脚本(XSS)?我们可以使用.htaccess修复

时间:2017-12-11 19:52:05

标签: php xss

我无法在我们的网站上修复跨站点脚本(XSS)。我正在消毒输入。代码的某些部分如下

$smecompname = $_POST['companyname'];
$companyname = strip_tags(trim($smecompname));
            $companyname = htmlspecialchars($companyname);
            $companyname = $this->validateInput($companyname);

protected function validateInput($data)   {
$data = preg_replace('/[^\p{Arabic}\dA-Za-z0-9 !@#%^&*_.-]/ui', ' ', $data);
    $data = htmlspecialchars($data);
    $data = html_entity_decode($data);

    return  $data;   }

客户端正在使用某种测试工具,并且评论是站点上可能发生跨站点脚本(XSS)。请告知我还能采取哪些措施来解决问题。

我们可以使用.htaccess文件修复此问题吗?  谢谢。

1 个答案:

答案 0 :(得分:1)

我们可以利用filter_input_array(在PHP 5> = 5.2.0,PHP 7中可用) 我通常会将此片段添加到SessionController中,因为所有调用都会在任何其他控制器与数据交互之前通过。以这种方式,所有用户输入在1个中心位置被消毒。 如果这是在项目开始时或数据库中毒之前完成的,那么在输出时你就不会有任何问题......停止垃圾进入,垃​​圾进出。

struct MyType{};

MyType foo()
{
    return MyType();
}

void bar(MyType mt){ }

int main(int value)
{
    auto q = foo();
    bar(q);
}

http://php.net/manual/en/function.filter-input-array.php