文本清理问题
Text sanitization Issue
我将下面的代码添加到我的站点来进行文本处理:
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']);
相关文章:
- 复选框与文本内联-JS问题
- 使用Handontable在同一列中用纯文本和html对问题进行排序
- 轴助手上的标签与文本几何和旋转问题
- 高图表的文本溢出问题
- 有CSS问题:can't将文本放置在选择框的右侧
- Safari手机文本输入问题
- 从 tinymce 文本区域检索数据时出现问题
- 文本框导致结构 JS 中的字体出现问题
- 使用jquery问题将文本附加到文本区域
- 显示比容器宽的文本,滚动时出现问题
- Type=文本模式问题
- Safari存在文本输入问题,用户输入时会选择文本,导致文本丢失
- IE9中的文本对齐问题
- 文本框聚焦事件并在IE9中输入问题
- 使用最接近查找文本输入的JQuery问题
- HTML:密码字段中的HTML5占位符属性问题 - 显示正常文本
- JavaScript WebSocket 字符编码问题(文本)
- Coffeescription出现奇怪问题-文本参数发送为null
- d3中的作用域问题.文本功能
- IE9上传问题:文本阻止上传按钮工作