文本清理问题

Text sanitization Issue

本文关键字:问题 文本      更新时间:2023-09-26

我将下面的代码添加到我的站点来进行文本处理:

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

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

PS:用户也可以使用标签。

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

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


更新:

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

可能没有问题,用户只是在提交之前禁用了javascript。

检查服务器端像

 $_POST['name'] = preg_replace('/<[^>]*>/', '', $_POST['name']);

 $_POST['name'] = strip_tags($_POST['name']);