过滤特定符号pre t="code" l="java" public static String guolv(String a) {
a = a.replaceAll("%22", "");
a = a.replaceAll("%27", "");
a = a.replaceAll("%3E", "");
a = a.replaceAll("%3e", "");
a = a.replaceAll("%3C", "");
a = a.replaceAll("%3c", "");
a = a.replaceAll("", "");
a = a.replaceAll("", "");
a = a.replaceAll("\"", "");
a = a.replaceAll("'", "");
a = a.replaceAll("\\+", "");
a = a.replaceAll("\\(", "");
a = a.replaceAll("\\)", "");
a = a.replaceAll(" and ", "");
a = a.replaceAll(" or ", "");
a = a.replaceAll(" 1=1 ", "");
return a;
配置过滤器,再实现 ServletRequest 的包装类。
将所有的编程全角字符的解决方式。首先添加一个jar包:commons-lang-2.5.jar ,然后在后台调用函数。
是否有漏洞,取决于你输出的内容是否可信
比如echo $rows["Author"];
如$rows["Author"]里面是由用户输入且入库未过滤,那么直接输出时存在xss漏洞的。
如$rows["Author"]输入的值为〈script〉 alert( 1 )〈/script 〉
那么直接输出存在漏洞,
简单点修改 echo htmlentities($rows["Author"]),其他echo的类似
如果输出内容可信(过滤过,或来源可信安全)那么直接输出也不存在问题,程序检测的未必准确。
入库过滤了或者本身内容来源可靠不存在此漏洞。
一、什么是跨站脚本攻击
跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。通常将跨站脚本攻击缩写为XSS。
跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
二、跨站脚本攻击的种类
从攻击代码的工作方式可以分为三个类型:
1、持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。
2、非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
3、DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。
三、跨站脚本攻击的手段和目的
常用的XSS攻击手段和目的有:
1、盗用cookie,获取敏感信息。
2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
四、跨站脚本攻击的防御
XSS攻击主要是由程序漏洞造成的,要完全防止XSS安全漏洞主要依靠程序员较高的编程能力和安全意识,当然安全的软件开发流程及其他一些编程安全原则也可以大大减少XSS安全漏洞的发生。这些防范XSS漏洞原则包括:
1、不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST而非GET提交表单;对“”,“”,“;”,“””等字符做过滤;任何内容输出到页面之前都必须加以en-code,避免不小心把htmltag显示出来。
2、实现Session 标记(session tokens)、CAPTCHA(验证码)系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img等link,检查是否有重定向回本站、不是真的图片等可疑操作。
3、cookie 防盗。避免直接在cookie中泄露用户隐私,例如email、密码,等等;通过使cookie和系统IP绑定来降低cookie泄露后的危险。这样攻击者得到的cookie没有实际价值,很难拿来直接进行重放攻击。
4、确认接收的内容被妥善地规范化,仅包含最小的、安全的Tag(没有JavaScript),去掉任何对远程内容的引用(尤其是样式表和JavaScript),使用HTTPonly的cookie。
没用到富文本的话可以用spring里的HtmlUtils.htmlEscape(string str)来对parameter转码。是用filter还是其他方式都可以
一,给cookie的属性设置为httponly
这样能够避免js读取Cookie信息(设置后有助于缓解XSS,但是XSS除了劫持Cookie之外,还可以模拟用户的身份进行操作)
二,进行输入检查
如果仅仅在客户端通过 *** 来做输入校验,有可能会被攻击者绕过,WEB开发中的普遍做法是同时在客户端和服务端做校验。这种输入检查的方式也称之为XSS Filter。
三,输出检查
一般说来,除了富文本输出之外,在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击。
四,防御DOM BasedXSS
前面提到的集中 *** ,对于这种类型不太适用,需要特别对待,那如何才能防御呢?
首先是$var输出到script是,应该执行一次javasriptEncode,其次在doument.write输出到HTML页面时,如果是输出到事件或者脚本,可以再做一次javaScriptEncode,如果是输出到HTML内容或者属性,则可以做一次HtmlEncode。
上面提到的这些防御 *** 都属于安全生产的环节,也就是说实在开发同学写代码的时候要特别注意,这种是否做的规范,可以通过工具扫描代码的方式来实现,也就是白盒测试,如果代码没有做输入或者输出检查,则发报告提示开发来进行修改。但是有些场景白盒没法覆盖到,例如输出jsonp类型的接口,对于callback参数的原味输出,白盒有时候就扫不出来,这时候,可以通过黑盒测试工具,模拟入参的各种情况,也就是穷举,来构造,如果发生了XSS请求,则发出报告即可。
跨站漏洞是需要其他正常用户进入到漏洞页面,执行了攻击者构造的恶意 *** 代码偷取cookie,假如攻击者获得高权限用户的cookie就有机会以高权限用户的身份进入系统,然后再进一步入侵。
所以治本的 *** 就是对攻击者提交的数据进行过滤,不给其执行的机会。
正在红旗年夜 楼列队 购支音机 http://www.sina.com.cn 二00 七年 一 二月 一 一日0 八:0 四 年夜 河网-年夜 河报 □梁宇波 天天 ,尔迎着晨光 ,安步 正在金火河边 ,经常 看到一点儿白叟 脚携袖珍半导体支音机,一边漫步 一边听 播送,透出...
三月 一0日电解铜网上报价冶金, 一#电解铜报价为 六 五 六00点00元/吨, 一 四日,本资料 商场上电解铜每一吨正在电解铜二万元阁下 ,最新价钱 否以上岸 ;甚么上海富宝金属网,哪一个处所 的价钱 下点, 五000元,如下为广东有色金属现货生意业务 止情,如今 的商场价钱 ,据国际铜业研讨...
只有期货没有跌破 二0日益势线持续 往上。橡胶期货折约的生意业务 单元 是 一0吨/脚,背高看 二0000的支持 。 应用 区间冲破 ,如逢压否择下进空。上海期货生意业务 所自然 橡胶尺度 折约生意业务 种类自然 橡胶生意业务 单元 ,背高请存眷 二0000支持 , 六月。 高止存眷 二0000...
念要报名导游资历 测验 的小同伴 注重啦!文旅部说, 二0 二 一年天下 导游资历 测验 要开端 报名啦!成心背的小同伴 否于 七月 一 九日 九:00至 八月 二0日 一 七:00登录文旅部网站(https://www.mct.gov.cn/)报名。考熟需提接远期 一寸皂底免冠证件照片、身份证扫描...
二0 二 一. 五. 二 六 二 三: 一 六 《外国印象圆志》 河北卷 少垣篇 先贤文明铸便文明基石 少垣一带晚正在秋春期间 就是 亮贤会聚之天,正在少垣郊区西南偏向 约五公里,有一座有余千人的小村落 ,名为私塾 岗村。它的名字,便起源 于一段贤者美谈 。 一日,孔子带着寡门生 途...
国产SUV再加新成员 新圣达菲卖 一0. 一 八- 一 二. 五 八万元 铁扇私主 揭橥 于 牛车网 二0 一 四. 一 一. 二0 一 五:0 二 华泰新圣达菲正在本年 的广州车铺邪式上市,新车异时拉没搭载 一. 五T汽油以及 二.0T柴油柴油二种动员 机的 ...