文本输入卫生和安全

Jim*_*nks 2 php security xss

我正在努力确保所有输入都是安全的,保护服务器和XSS攻击.验证输入strip_tagshtmlentities傻瓜证明系统?我被告知它是,并想确认.即例如:

$re = htmlentities(strip_tags($_GET['re']), ENT_COMPAT, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

这应该可以防止任何linux命令和任何HTML链接正确吗?有什么漏洞没有考虑过吗?

mea*_*gar 5

这根本不是什么htmlentities.用于htmlentites在将输出发送到浏览器之前对其进行编码.它与消毒输入无关.处理输入时唯一需要担心的是正确地将数据转储到SQL查询中以防止SQL注入.有关更多信息,请参阅PHP数据对象.

strip_tags在这里有用,但你不需要同时使用strip_tags htmlentities.其htmlentites唯一目的是防止标记被解释.考虑这个问题的唯一正确方法是:保留用户输入的内容并使其安全.不要剥离他们的标签,只需它们进行编码,使它们在键入时显示.否则,你风剥之类的东西<sarcasm><rant>标签.用户的意图不是注入HTML.

"Linux命令"与HTML无关.无法通过HTML /脚本注入执行任意Linux命令.

我想到的是诸如"; ls -la"之类的东西

如果你实际上正在接受用户提供的输入并通过system这种方式执行它,那么你已经遇到了麻烦.这是一个可怕的想法,你不应该这样做.

</咆哮>