转自博客: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. 简单DP入门四连发

    复习一下一直不太懂的dp. dp博大精深,路还长着呢 第一题;http://acm.hdu.edu.cn/showproblem.php?pid=2084 从下往上就是水题 #include<c ...

  2. Mac下配置域名和网站测试环境

    一.在 /etc/hosts   下配置相关域名 1, control+space  打开spotlight, 搜索“terminal” 2, 打开Terminal 3, 在terminal界面中输入 ...

  3. HTML的报告

    import HTMLTestRunner class HTMLReporter(object): def reporter(self,filename,reportername,reporterdi ...

  4. jQuery动画函数回调

    $("#show").click(function () { //function 是显示完成之后的回调函数 $("p").show(2000,function ...

  5. CreateToolhelp32Snapshot 以及 EnumProcesses

    RT,请教如何获得Windows任务管理器中所显示的进程列表. CreateToolhelp32Snapshot 以及 EnumProcesses 这些方法我都试过了,但是这两种方法得到的结果和任务管 ...

  6. 使用iTEXT库生成pdf

    iTEXT下载地址 https://sourceforge.net/projects/itext/files/ 选择绿色的按钮,下载最新版本,解压后是一些jar包 为了使用方便,将文件夹放到JAVA_ ...

  7. 跟我学Spring Boot(二)Hello World

    1.打开DemoApplication添加如下代码 package com.example; import org.springframework.boot.SpringApplication; im ...

  8. php file_get_contents 使用3法

    <?php //GET function http_get($url, $params){ return file_get_contents($url.'?'.http_build_query( ...

  9. SQL 创建联合主键Table

    CREATE TABLE [User_Instance]( [IntanceID] [int] NOT NULL, ) NOT NULL ) ON [PRIMARY] GO SET ANSI_PADD ...

  10. Router components

    Input Unit The Input unit contains virtual channel buffers and an input VC arbiter. Route Info: use ...