【安全开发】从反射XSS防护入门

作为一个资深的、又比较老的开发人员至少也得碰到被别人进行JavaScript攻击过的情景。

JSONP导致被攻击的情况

jsonp是一种前端ajax请求,后端支持一下就可以达到跨域的情况;当然这个只能支持Get。那么这个攻击是怎么由来的呢?我们看一下后端的代码:

<code>

/<code>

前台访问http://xxx.com/test.php?callback=callback

回显:callback({"test":"test"})

那么这时候如果明白前端html的执行过程就可以在这个时间进行构造了。

http://xxx.com/test.php?callback=

用上面的连接打开之后。咚,一个小框就出来了...

搜索框

都知道搜索框是由一个input框组成的,当然高级的也有。本次案例就是拿简单的input框吧。

<code>

<

input

type

=

"text"

value

=

"xxx"

name

=

"keyword"

/>

<

button

>搜索

button

>/<code>

这时候输入test,点击提交之后URL地址:http://xxx.com/test.php?keyword=test

我们这时候再查看源代码:

<code><

input

type

=

"text"

value=

"test"

name=

"keyword"

/>/<code>

ok,那我们输入 "

http://xxx.com/test.php?keyword="

那么这时候的源代码:

<code><

input

type

=

"text"

value=

""

" name="

keyword

"/>

/<code>

咚,又一个小框框。

比较鸡肋的Self-XSS

从单词上就可以理解,self自己,也就是自己x自己。其实这个构造起来比较简单,也容易触发,但是构不成危害,所以self-xss,各大src也不收,毕竟x自己...

反射XSS只是弹框吗?

从上面案例中看只是弹一个框,真的只是一个弹框的危害吗?

xss是可以在用户侧去执行恶意构造的js脚本,那么我们都知道javascript是可以获取到cookie,页面等信息的。那么我构造一个payload,专门用于去获取cookie,再把cookie回传回来这时候是不是就可以拿cookie直接登录别人的账号了...

不要去攻击别人,但是要知道这个攻击的原理和危害。

防护

针对用户的输入,会部做转义处理,谨记一点,用户所有输入不可信,即使是在页面选择的!!!


分享到:


相關文章: