0

我将此代码添加到我的网站以进行文本清理:

var re = /(<([^>]+)>)/gi;
        for (i=0; i < arguments.length; i++){
        arguments[i].value=arguments[i].value.replace(re, "");
        }

但不知何故,人们能够使用标签,仍然能够通过文本区域在我的网站上发布图片。如果我的代码有误,请告诉我。

PS:用户也摆脱了标签。

4

2 回答 2

0

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']);
于 2013-04-09T07:45:26.287 回答
0

永远不要相信输入数据。用户可以简单地使用curl或其他东西,并将HTTP POST请求中包含他想要的任何数据的请求发送到您的服务器。因此,有一个规则来验证服务器端的所有数据,然后再将其保存到数据库中。

您可以引入客户端验证以改善用户体验,但无论如何您必须在收到请求时在服务器端验证该输入。


更新:

我看到你用php标签标记了你的问题,所以如果你的服务器端应用程序是用 PHP 编写的,你可以使用HTML Purifier来清理输入数据并避免 XSS 等。另外,如果你使用一些 PHP 框架,它可能会有一个自己的 HTML Purifier 包装器。例如 Yii 框架就有它。

于 2013-04-09T07:41:14.130 回答