【网安自学】XSS漏洞防御

一.XSS漏洞的产生很大原因是:程序没有经过过滤或者过滤的敏感字符不严密就直接输出或写入数据库,导致一些别有用心的人通过构造巧妙的脚本恶意代码来实施攻击。

二.根据漏洞产生的原因,防御XSS漏洞的方法就是对敏感字符进行转义和过滤

方法一:htmlspecialchars函数

格式:string htmlspecialchars(string $string, int $quote_style, string $charset);

三个参数的意义:

$string                

转换对象字符串

$quote_style       

转换方法(ENT_NOQUOTES,ENT_COMPAT,ENT_QUOTES) 

$charset              

字符编码。例如:UTF-8、GBK

三种转换方法:

ENT_COMPAT

 默认。仅编码双引号。

ENT_QUOTES

 编码双引号和单引号。

ENT_NOQUOTES

 不编码任何引号。

实例一:没有任何基本防御

进行防御:

将注入的代码进行了转义,使其失去了效果

实例二:对<script>和</script>进行了过滤,没什么用,大小写组合直接绕过

进行防御:

实例三:对大小写都进行了过滤,并没有什么用,可以通过<img src=1 οnerrοr=alert("xss")>绕过

进行防御

实例四:使用img就可以绕过

进行防御:

实例五:可以使用confirm,prompt标签进行弹窗

进行防御:

实例六:可以使用a"; alert($a);$a="绕过

进行防御:

实例七:和实例六差不多,有htmlentities进行转义,但是却没有对 '(单引号进行转义)

构造payload:a';alert($a);$a='  可以绕过

进行防御:

实例八:

进行防御

/"οnsubmit=javascript:alert(1)%20name="

防御cookie泄露(开启Http-only)

1.对于session

(未开启)---->(开启):ini_set("session.cookie_httponly",1);

2.对于cookie,把setcookie的第七个参数设置为true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值