前台提交内容:
一般通过百度UE 或 kind 编辑器;
这些编辑器会自动转义视图区的一些标签; 提交带标签的HTML字符串;
为了保持一致性,后台不能再次进行转义,而直接入库;
非法用户可以直接POST一段SCRIPT+HTML的代码,不经过JS;
这样会造成XSS攻击;
XSS: script 这个好解决,转义
和<script>即可; <br /> <br /> 但是HTML就麻烦了: <br /> 1.过滤position: 先去掉定位,把:转义; 定位完全可以重新定义页面; <br /> 2.过滤iframe frameset head ; 防止跳转; <br /> <br /> 这些就够了吗? 感觉还是不完善, 又不能全部转义; <br /> 假设用户利用DOM节点来扰乱页面呢? <br /> <br /> <p class="aaa"> <br /> 提交了这段代码,而正常的脚本JS中有对.aaa节点的操作,如 复制,引用等等. 这样该事件取得的值将会产生意外; <br /> <br /> 3.还要过滤 clss="" id="" name=""; <br /> 如果JS中有自定义的属性, 那需要用正则删除所有属性; <br /> <br /> 4.... <br /> <br /> <br /> 我想知道你们如何处理的? 我感觉很乱,想找个规范的解决方案; <br /> <br /> <br /> <p> <br /> <h2>回复讨论(解决方案) <p class="sougouAnswer"> 所以允许用户富文本编辑的系统都采用 ubb 或 bccode 编码格式 <br /> 而在线 html 编辑器仅限于管理群使用 </script>
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn