防Xss注入
转自博客: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,'<').replace(/>/g,'>').replace(/"/g, """).replace(/'/g, "'").replace(/&/g, "&").replace(/\//g, "/"); 但是没有效果
公司大佬建议我用npm 导入XSS
tnpm install -save xss
var xss = import("xss");
var html = xss('<script>alert("xss");</script>');
console.log(html);
但是吧 我没用明白, 后来又问了另一个大佬,他让我用正则做
防Xss注入的更多相关文章
- 关于在线文本编辑器防XSS注入攻击问题
跨站脚本攻击,又称XSS代码攻击,也是一种常见的脚本注入攻击.例如在下面的界面上,很多输入框是可以随意输入内容的,特别是一些文本编辑框里面,可以输入例如<script>alert('这是一 ...
- tp5怎么防sql注入 xss跨站脚本攻击
在 application/config.php 中有个配置选项 框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则 则会调用这些函数 自动过滤 // 默认全局过滤方法 用逗号分隔多个 ...
- php防sql注入、xss
php自带的几个防止sql注入的函数http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0318/12234.html addslashe ...
- php防sql注入过滤代码
防止sql注入的函数,过滤掉那些非法的字符,提高sql安全性,同时也可以过滤XSS的攻击. function filter($str) { if (empty($str)) return false; ...
- 【前端安全】JavaScript防XSS攻击
什么是XSS XSS(Cross Site Scripting),跨站脚本攻击,是一种允许攻击者在另外一个用户的浏览器中执行恶意代码脚本的脚本注入式攻击.本来缩小应该是CSS,但为了和层叠样式(Cas ...
- .Net防sql注入的方法总结
#防sql注入的常用方法: 1.服务端对前端传过来的参数值进行类型验证: 2.服务端执行sql,使用参数化传值,而不要使用sql字符串拼接: 3.服务端对前端传过来的数据进行sql关键词过来与检测: ...
- 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项
我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...
- C#语言Winform防SQl注入做用户登录的例子
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 富文本编辑器防止xss注入javascript版
富文本编辑器:ueditor 其实富文本编辑器已经有防止xss注入功能,但是你服务端程序在接收的时候在做一次转义,否则有可能然后前端验证直接提交数据导致被xss攻击. 为了节省后端程序开销则在前端 显 ...
随机推荐
- angular2.0学习笔记2.创建hello world项目
1.打开终端命令行窗口 2.切换到指定目录 E:\cd myobject 3.创建新项目 ng new angular2-helloworld 4.创建成功后,在angular2-helloworld ...
- 多进程copy文件
from multiprocessing import Pool,Manager import os,time def copyFileTask(fileName,oldFolderName,newF ...
- java8 数据结构的改变(二) 对ConcurrentHashMap影响
https://www.cnblogs.com/study-everyday/p/6430462.html http://www.importnew.com/22007.html
- 发送邮件--MFMailComposeViewController
只能在真机使用. 模拟器没有E-mail发送功能.无法调用 #import "EmailViewController.h" #import <UIKit/UIKit.h> ...
- @PostConstruct和@PostConstruct 注解 及ehcache 缓存 执行过程 小记
@PostConstruct 和@PostConstruct 注解 从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion):@PostConstr ...
- eclipse项目两个红点
Description Resource Path Location Type Unbound classpath container: 'JRE Sy 选中项目右键build path 选择libr ...
- 阿里云安骑士-Centos7系统基线合规检测-修复记录
执行命令 sysctl -w net.ipv4.conf.all.send_redirects=0sysctl -w net.ipv4.conf.default.send_redirects=0sys ...
- 之前的一些Oracle的经验总结
1. 安装: 1) 关于字符集的选择,现在还不很了解,修改是需要进入一个模式下才可以修改,当然新建一个数据库实例的时候可以重新设定: UTF8是相对比较大的一个字符集, 可以简单实用这个就能保存很多的 ...
- jrebel
jrebel 编辑 JRebel是一套JavaEE开发工具.JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品. JRebel是收费软件,用户可以在JReb ...
- 实现WireCard支付
实现WireCard支付,暂未完成 WireCardController.cs using System; using System.Collections.Generic; using System ...