在PHP textarea中保存多个URL导致XSS误报

时间:2015-09-26 23:22:37

标签: php character-encoding xss mod-security false-positive

我已经尝试了一切。我使用自己的php函数sanitizeString()来删除字符并清理输入字符串到我们喜欢的地方。它有mysqli_real_escape_string,preg_replace,str_replace和htmlspecialcharacters。我在$ _POST变量

周围调用此函数
$string = sanitizeString( $_POST["user input that could include legit url's"] );

function sanitizeString ($dirtystring)
{
    cleaning code
    return $cleanstring
}

问题是,当我尝试保存各种变量中的多个URL时,我似乎在提交时遇到了一个不一致的mod_security。

$website_url1 = sanitizeString ( $_POST["website1"] );
$website_url2 = sanitizeString ( $_POST["website2"] );
$website_url3 = sanitizeString ( $_POST["website3"] );

或者当'太多'时,[]>我正在使用enctype =“application / x-www-form-urlencoded”charset = UTF-8

当我提出一些真正的脏信息时,带有撇号,短划线,大于冒号,感叹号,逗号和人们通常输入的其他东西,我得到了混合的结果。有时表单会评估和删除字符,有时我会在评估之前获得mod_security。

以下是抛出modsecurity的示例数据:

===开始数据示例=== 是!那甚至更好。我一定很想和你合作。让我知道你准备好了,我们可以谈谈下一步。

谢谢你, 吨。

22/22/22,上午2:22,客户x写道:

嗨 - 谢谢你的伟大。我正和几位前公司员工一起工作,所以我知道现在很不确定。听到这个消息我真的很抱歉。我很高兴向你推荐一些好的等等教练/简历作家。此外,如果您想直接与我合作,我正准备启动自己的服务。只是让我知道你的偏好,我可以指出你正确的方向。多保重!客户

22/22/22,上午2:22,:

嗨客户, 我现在的工作正在发生很大变化,我希望为可能出现的新机会做好准备。我正在寻找一位非常优秀的简历作家和职业教练来帮助我明确我的下一个职业生涯。你有没有使用和/或强烈推荐的人? http://website1.com ... http://website3.com

===数据结束示例===

我想解析信息并转换URL。它有点可行但是这个简单的样本数据在我可以消毒之前会在提交时抛出一个modsecurity。

0 个答案:

没有答案