2017-03-17 74 views
-1

我有一个输入字段,我使用htmlentities来编码值。XSS易受攻击,即使当我使用编码时

$value=htmlentities($value); 

存储在分贝值是:

"/><script>alert(document.cookie)</script><br class=" 

但是当我显示上述文本到用户,执行警戒。我怎样才能防止呢?

+0

您数据已经是HTML编码的(例如, '<'),应用'htmlentities()'将对它编码两次('& lt;')。 '<'和'& lt;'都与'<'非常不同。我相信你有一个错误的诊断(或者这不是实际的代码)。 –

回答

0

还有更多的事情可能发生:

  • 你有一些其他的代码做警示,比“意见”
    • 看输出页面等,并设法找到,它在哪里叫
  • 您在高速缓存中有旧的一页
    • 清除缓存,再次尝试
  • 使用一些“HTML实体解码”功能,它转换实体实际字符
    • 只是不要如果使用此功能