我将此代码添加到我的网站进行文本清理:
var re = /(<([^>]+)>)/gi;
for (i=0; i < arguments.length; i++){
arguments[i].value=arguments[i].value.replace(re, "");
}
但不知何故,人们可以使用标签,仍然可以通过文本区域在我的网站上发布图片。如果我的密码错误,请告诉我。
PS:用户也在使用标签。
答案 0 :(得分:0)
永远不要相信输入数据。
用户可以简单地使用curl
或其他内容,并将HTTP POST
请求与他想要的正文中的任何数据一起发送给您的服务器。
因此,在将其保存到数据库之前,必须先验证服务器端的所有数据。
您可以引入客户端验证以改善用户体验,但无论如何您必须在收到请求时在服务器端验证该输入。
更新:
我看到您使用php
标记标记了您的问题,因此如果您的服务器端应用程序是用PHP编写的,则可以使用HTML Purifier来清理输入数据并避免使用XSS等。
此外,如果你使用一些PHP框架,它可能有一个自己的HTML Purifier包装器。例如,Yii框架就有它。
答案 1 :(得分:0)
也许没什么不对,用户只需在提交前禁用javascript。
检查服务器端 像
$_POST['name'] = preg_replace('/<[^>]*>/', '', $_POST['name']);
OR
$_POST['name'] = strip_tags($_POST['name']);