作者:linjiabin43 | 2023-06-26 21:10
我已经知道XSS是如何工作的,但是找出所有注入恶意输入的方法并不是一种选择.
我在那里看到了几个库,但是大多数都是非常不完整,无效或GPL许可(你们什么时候才能知道GPL不好分享小库!使用MIT)
1> atk..:
OWASP提供了一个编码库,用于处理各种情况.
已过时:http
:
//www.owasp.org/index.php/Category:WHASP_Encoding_Project
现在http://code.google.com/p/reform/
和OWASP的antiXSS特定库位于:http://code.google的.com/p/PHP-antixss /
看来这个代码自2007年以来一直没有更新.这是一个问题吗?
2> zerkms..:
htmlspecialchars()
是你应该知道的唯一功能.
不幸的是,这还不够.如果您对JavaScript中使用的字符进行html编码,那么您的JS中的数据就会很糟糕.与放置在URL中的字符相同.此外,还有一些用例,其中函数不会阻止XSS,例如标记属性而不封装单引号或双引号(因为空格不是由htmlspecialchars编码的)
当然,您需要为输出上下文提供正确的编码形式.对于HTML来说,这通常是`htmlspecialchars()`,但可能是`rawurlencode()`,`json_encode()`,`mysql_real_escape_string()`,等等.重点是,这取决于输出阶段,并且*不是*可以使用"anti-XSS"度量在输入上处理的东西.