我将此代码添加到我的网站以进行文本清理:
var re = /(<([^>]+)>)/gi;
for (i=0; i < arguments.length; i++){
arguments[i].value=arguments[i].value.replace(re, "");
}
但不知何故,人们能够使用标签,仍然能够通过文本区域在我的网站上发布图片。如果我的代码有误,请告诉我。
PS:用户也摆脱了标签。
我将此代码添加到我的网站以进行文本清理:
var re = /(<([^>]+)>)/gi;
for (i=0; i < arguments.length; i++){
arguments[i].value=arguments[i].value.replace(re, "");
}
但不知何故,人们能够使用标签,仍然能够通过文本区域在我的网站上发布图片。如果我的代码有误,请告诉我。
PS:用户也摆脱了标签。
maybe nothing wrong ,user just disable javascript before submit.
check in server side like
$_POST['name'] = preg_replace('/<[^>]*>/', '', $_POST['name']);
OR
$_POST['name'] = strip_tags($_POST['name']);
永远不要相信输入数据。用户可以简单地使用curl
或其他东西,并将HTTP POST
请求中包含他想要的任何数据的请求发送到您的服务器。因此,有一个规则来验证服务器端的所有数据,然后再将其保存到数据库中。
您可以引入客户端验证以改善用户体验,但无论如何您必须在收到请求时在服务器端验证该输入。
更新:
我看到你用php
标签标记了你的问题,所以如果你的服务器端应用程序是用 PHP 编写的,你可以使用HTML Purifier来清理输入数据并避免 XSS 等。另外,如果你使用一些 PHP 框架,它可能会有一个自己的 HTML Purifier 包装器。例如 Yii 框架就有它。