Php 文本净化问题
我将此代码添加到我的站点以进行文本清理:Php 文本净化问题,php,javascript,jquery,html,sanitization,Php,Javascript,Jquery,Html,Sanitization,我将此代码添加到我的站点以进行文本清理: var re = /(<([^>]+)>)/gi; for (i=0; i < arguments.length; i++){ arguments[i].value=arguments[i].value.replace(re, ""); } var re=/(]+>)/gi; 对于(i=0;i
var re = /(<([^>]+)>)/gi;
for (i=0; i < arguments.length; i++){
arguments[i].value=arguments[i].value.replace(re, "");
}
var re=/(]+>)/gi;
对于(i=0;i
但不知何故,人们可以使用标签,仍然可以通过文本区在我的网站上发布图片。如果我的密码有误,请告诉我
附言:用户也在逃避标签 永远不要信任输入数据。 用户只需使用
curl
或其他工具,就可以向服务器发送httppost
请求,请求中包含他想要的任何数据。
因此,在将所有数据保存到数据库之前,要有一条规则来验证服务器端的所有数据
您可以引入客户端验证来改善用户体验,但无论如何,当收到请求时,您必须在服务器端验证输入
更新: 我看到您用
php
标记了您的问题,因此如果您的服务器端应用程序是用php编写的,那么您可以使用a来清理输入数据并避免XSS,等等。
另外,如果您使用一些PHP框架,它可能会有一个自己的HTML净化器包装器。例如,Yii框架有它。可能没什么问题,用户只需在提交之前禁用javascript即可 签入服务器端 像
他们可能会绕过JavaScript方面。。您还需要在服务器端进行清理。还要小心
i
变量,它正在泄漏。您是什么意思?老实说,当我查看用户通过mysql数据库输入的内容时,我只看到了html标记;work@Karthik在将输入存储到数据库之前,只需使用php以类似的方式检查输入
$_POST['name'] = preg_replace('/<[^>]*>/', '', $_POST['name']);
$_POST['name'] = strip_tags($_POST['name']);