转自博客:https://blog.csdn.net/qq_21956483/article/details/54377947

1、什么是XSS攻击

XSS又称为CSS(Cross SiteScript),跨站脚本攻击。其原理是攻击者向有XSS漏洞的网站中“嵌入”恶意的HTML代码,当其他用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如:盗取用户Cookie、重定向到其他网站等。

理论上,所有可以输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞。漏洞的厉害取决于攻击代码的能力。

2、XSS攻击常见危害

(1)、网站钓鱼、网页挂马,包括盗取各类用户账号。

(2)、获取用户Cookie资料,从而获取用户隐私信息。

(3)、获取客户端信息,如用户的浏览历史、真实IP等。

(4)、强制弹出广告页面等。

(5)、进行大量的客户端攻击,如DDoS攻击。

。。。。。。

3、XSS攻击防范方案

(1)相对完整的输入过滤体系。

凡是有输入的地方,必须得对非法字符做过滤处理。

过滤”<”和”>”等标记,如果HTML内容中有针对某些不能严格过滤的字符,则要对这些标签进行转义处理。(如将”<”转义为”<”)

过滤特殊字符:&、回车和空格等。

关于常用的一些字符串过滤方案,我们可以写一个常用的过滤器(filter)去执行。这里有一篇相关博文可以借鉴。http://blog.csdn.net/catoop/article/details/50338259

(2)web表单做各类输入校验

表单中的各项输入分别在客户端和服务器端做相关正则表达式的校验,避免非法字符的输入。

(3)输出检查

除了(1)和(2)中的常见输入检查以外,还需要对输出的变量进行编码处理(htmlencode)或者对一些输出内容进行转义操作(escape等)。还有对富文本的内容要进行严格输出,因为富文本中的插入图片或者代码的标签比较多,应该严格控制标签的输出。

本来我打算用replace做:res.replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g, "&quot;").replace(/'/g, "'").replace(/&/g, "&amp").replace(/\//g, "&#x2F");  但是没有效果

公司大佬建议我用npm 导入XSS

  

tnpm install -save xss

var xss = import("xss");
var html = xss('<script>alert("xss");</script>');
console.log(html);

但是吧  我没用明白, 后来又问了另一个大佬,他让我用正则做

防Xss注入的更多相关文章

  1. 关于在线文本编辑器防XSS注入攻击问题

    跨站脚本攻击,又称XSS代码攻击,也是一种常见的脚本注入攻击.例如在下面的界面上,很多输入框是可以随意输入内容的,特别是一些文本编辑框里面,可以输入例如<script>alert('这是一 ...

  2. tp5怎么防sql注入 xss跨站脚本攻击

    在 application/config.php 中有个配置选项 框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则 则会调用这些函数 自动过滤 // 默认全局过滤方法 用逗号分隔多个 ...

  3. php防sql注入、xss

    php自带的几个防止sql注入的函数http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0318/12234.html addslashe ...

  4. php防sql注入过滤代码

    防止sql注入的函数,过滤掉那些非法的字符,提高sql安全性,同时也可以过滤XSS的攻击. function filter($str) { if (empty($str)) return false; ...

  5. 【前端安全】JavaScript防XSS攻击

    什么是XSS XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击.本来缩小应该是CSS,但为了和层叠样式(Cas ...

  6. .Net防sql注入的方法总结

    #防sql注入的常用方法: 1.服务端对前端传过来的参数值进行类型验证: 2.服务端执行sql,使用参数化传值,而不要使用sql字符串拼接: 3.服务端对前端传过来的数据进行sql关键词过来与检测: ...

  7. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  8. C#语言Winform防SQl注入做用户登录的例子

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  9. 富文本编辑器防止xss注入javascript版

    富文本编辑器:ueditor 其实富文本编辑器已经有防止xss注入功能,但是你服务端程序在接收的时候在做一次转义,否则有可能然后前端验证直接提交数据导致被xss攻击. 为了节省后端程序开销则在前端 显 ...

随机推荐

  1. 20172306 《Java程序设计与数据结构》第七周学习总结

    20172306<Java程序设计>第七周学习总结 教材学习内容总结 这一章的标题是继承.主要学习了有关继承的相关知识.其中在这五节中,我学到了以下几点: 1.继承主要表达的是" ...

  2. Loadrunner 脚本录制策略

    Loadrunner在脚本录制过程中,我们会先后分别碰见init.action.transaction.end.block等概念.本次打算以图文并茂的形式为大家分别讲解. 以下为一个简要的网站操作逻辑 ...

  3. 大神你好,可以帮我P张图吗?

    韩国版的求大神帮我P张图,看得有点下巴脱臼啊!哈哈哈哈哈哈哈~ 感觉照片拍得很尴尬,请大神P得更有动感 拍了跳跃照片,但内衣露出来一点,能帮忙去掉吗 不喜欢没穿制服的样子,请帮忙加上制服 ​ 希望背景 ...

  4. 连接db2数据库出现No buffer space available (maximum connections reached?)

    Caused by: javax.naming.NamingException: [jcc][t4][2043][11550][3.57.82] 异常 java.net.SocketException ...

  5. 2017/2/12:springMVC的简单文件上传跟拦截器

    1.写文件上传的界面jsp代码如下重点为文件上传标签的类型 2.写登录成功跟失败的界面:成功自己写 3.写springMVC的文件上传的controller的方法 4.最后一步配置spring-ser ...

  6. mysqldb mysql_config

    在安装mysqldb Python的时候会用到mysql_config,但是正常安装的MySQL环境下是没有这个文件的,这个文件在Linux下是可执行文件,所以需要到mysql官方网站上下载MySQL ...

  7. ASP项目部署IIS7.5中遇到的问题

    我们大家都熟悉了tomcat服务器的部署,如果是一个ASP项目如何部署呢.这也是我在客户现场遇到的问题.ASP项目一般是用的系统组件IIS来部署项目.下面我讲一下自己在部署过程中遇到的问题. 如果在网 ...

  8. mysql 设置外键 四大属性 CASCADE SET NULL NO ACTION RESTRICT 理解

    CASCADE:主表delete.update的时候,从表会delete.update掉关联记录: SET NULL:主表delete.update的时候,从表会将关联记录的外键字段所在列设为null ...

  9. 图解TCP/IP(一)

    IP(Internet Protocol) IP/ICMP -数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递.而一旦跨越多种数据链路,就需要借助网络层. -配备IP的设备,但是不进行路 ...

  10. dj 分页器组件

    django内置的分页器组件,能够帮我们实现对查询的数据进行自动分页,并返回分页对象 from django.core.paginator import Paginator, EmptyPage Pa ...