【安全開發】從反射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直接登錄別人的賬號了...

不要去攻擊別人,但是要知道這個攻擊的原理和危害。

防護

針對用戶的輸入,會部做轉義處理,謹記一點,用戶所有輸入不可信,即使是在頁面選擇的!!!


分享到:


相關文章: