文本清理问题

时间:2013-04-09 05:42:51

标签: php javascript jquery html sanitization

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

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

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

PS:用户也在使用标签。

2 个答案:

答案 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']);