关于常见跨站攻击的防御
2016-1-17 0:0:0 wondial关于常见跨站攻击的防御
关于常见跨站攻击的防御XSS攻击:
跨站脚本攻击(Cross Site Scripting)。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。
以下是一个恶意js脚本的范例:
下面简单介绍一下Cross脚本的防御方法:
大体的思路很简单,一般XSS攻击都是程序没有过滤掉用户输入中的恶意js脚本,以致恶意的js脚本被解释执行。所以我们只需要将用户输入字符串进行检测,去掉<script></script>标签,或者转义'<'字符。
PHP代码:
if(_SERVER['REQUEST_URI']) { temp = urldecode(_SERVER['REQUEST_URI']); if(strexists(temp, '<') || strexists(temp, '"')) { _GET = shtmlspecialchars(_GET);//XSS } } //取消HTML代码 function shtmlspecialchars(string) { if(is_array(string)) { foreach(string as key => val) { string[key] = shtmlspecialchars(val); } } else { string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), string)); } return string; }
当然也可以转义:
1、htmlspecialchars() 转义特别的字符为HTML实体
•'&' (ampersand) becomes '&'
•'"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
•''' (single quote) becomes ''' only when ENT_QUOTES is set.
•'<' (less than) becomes '<'
•'>' (greater than) becomes '>'
2、htmlspecialchars_decode()将实体转成HTML代码,函数1的反函数
3、 htmlentities()这个是全部转换html实体,和htmlspecialchars()区别在于,这个函数是转义全部的字符,而htmlspecialchars()仅仅转义上面限定的5个特殊字符
jsp中同样有转义函数:
如果您的问题还没有解决,可以到 T+搜索>>上找一下答案
相关阅读
- 用友T3用友通系统重装后,没有账套备份,如何恢复账套2019-4-29 8:0:0
- 明细账权限设置时提示“没有操作员”?2019-4-29 8:0:0
- 用友T3用友通凭证及明细帐打印出错2019-4-23 8:0:0
- 用友T3用友通凭证删除问题2019-4-23 8:0:0
- 用友T3用友通其他出入库单据的对方科目如何设置2019-4-23 8:0:0
- 用友T3用友通其他业务成本在科目余额表中无数据,在明细账中可以查到2019-4-23 8:0:0
- 用友T3用友通关于销售模块中发货单生成发票时存在的问题或需求?2019-4-23 8:0:0
- 用友T3用友通关于销售开票如何能只开金额不开明细2019-4-23 8:0:0
- 用友T3用友通关于银行代发的表样设置2019-4-23 8:0:0
- 用友T3用友通关于采购订单的执行问题?2019-4-23 8:0:0
最新信息
选择进货时间应找准抵扣时点 选择进货时间应找准抵扣时点
《》第十条第一款第一项规定,下列项目的进项税额不得从销项税额中抵扣:“(一)用于非增值税应税项目、免征增值税项目、集体福利或者个人消费的购进货物或者应税劳务。……”因此,用于免税项目或者非增值税应税劳务的购进货物或者应税劳务,其进项税额不得从销项税额中抵扣。对于无法准确划分的不得抵扣的进项税额,在计算不得抵扣的进项税额时,《》第二十六条第一款规定,不得抵扣的进项税额=当月无法划分的全部进项税额×当月免税项目销售额、非增值税应税劳务营业额合计÷当月全部销售额、营业额合计。