我有用户输入,其中包含我需要清理的 html。目前我正在使用:
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = preg_replace('/[^a-zA-Z0-9_-]/', '', $data);
用于其他输入(无 html)。我允许使用下划线和连字符,因为它们是用户个人资料的 Twitter 用户名。使用其中的 html 标记清理输入有什么想法吗?
最佳答案
通过其他方式对 HTML 进行清理可以保护站点免受 XSS 攻击。根据XSS (Cross Site Scripting) Prevention Cheat Sheet清理 HTML 取决于您如何打印用户数据,例如:下表显示了将应用不同保护机制的不同场景:
php strip_tags 函数可用于某些情况,但它对所有类型的恶意代码都不安全。我建议关注 OWASP。
关于php - 如果输入有 html,则清理用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391843/