我正在用PHP构建一个模板工具,允许用户将html/css内容输入表单文本区域。目前我正在运行:
Strip_Tags(只允许基本的html和样式标签)
然后:
htmlentities
然后:
htmlspecialchars_decode(例如,将允许的标签从<br>
转换回)
我的表单操作使用htmlentities($_SERVER['PHP_SELF'])
方法。
关于还需要什么来保护这个在线消费工具,有什么建议吗?我需要验证吗?如果需要,是什么过滤器?是否有某些恶意代码我也应该删除?
基于所需的输入(仅限html/css),是否有最佳实践?我(目前)不使用数据库,但如果需要扩大规模,我会喜欢一个伞形解决方案。
感谢
第一行保护应该是转义字符串,例如mysqli
有一个方法real_escape_string()
,它可以防止任何可以被解释为SQL的代码被执行,这个方法主要用于数据库安全。
您应该确保用户不会通过转义斜杠在服务器上执行恶意代码,方法是使用addslashes()
函数。
除此之外,从基本的安全角度来看,你应该很好。