OWASP 规则 5 有人可以向我解释一下这是什么意思以及如何在 PHP 中实现它吗?
不要使用 URL 编码对完整或相对 URL 进行编码!如果不受信任的输入被放置到 href、src 或其他基于 URL 的属性中,则应该对其进行验证以确保它没有指向意外的协议,尤其是 Javascript 链接。然后应该像任何其他数据一样根据显示的上下文对 URL 进行编码。例如,HREF 链接中的用户驱动 URL 应该是属性编码的。
这个关于 SO 的答案似乎涵盖了其中的一部分: 输入是 URL,如何 使用 makeHTMLAttributeSafe($string) 函数保护它免受 xss 的影响。但是如何检查它是否是“意外协议或 javascript 链接”?我应该搜索和替换某些“坏”关键字,如“javascript”、“脚本”、“onload”等吗?我的任何用户都没有必要输入这些术语的充分理由,因此我可以在必要时采用相当严厉的方法删除列入黑名单的术语。我花了很多时间试图理解 xss,并且非常感谢对此进行澄清。谢谢!