問個安全性方面的問題,網站使用了AJAX更新或者添加數據,有以下問題不是太明白


比如說:jquery 的AJAX部分代碼這樣子的

 $.post("http://www.mboxlady.com/ajaxmycart.aspx", { Action: "post", product_id: id, colorno: colorno...參數, type: "addcart" }

問題來了,從安全方面說,AJAX就是POST數據過去,而且還會返回對應的參數,這樣一來是不是別人可隨意POST數據到這個頁面,根據我返回的參數得到他需要的。我試了下,反正這種AJAX用絕對地址好像是不能直接調用其他域名的數據,但是如果攻擊者直接看到我的這個傳輸頁面 直接用頁面提交的形式POST過去應該就可以了吧。

我擔心這種數據庫被別人惡意post參數過來,我想到的是在處理post數據前判斷了下來源鏈接域名是否為我指定域名,如果不是我指定域名就不執行。不知道這樣做是不是畫蛇添足,,,,

http://www.mboxlady.com/ 我這個網站第三方登陸也是用的第三方JS登陸過來后我用AJAX處理的,最擔心這個是不是一個致命隱患,高手幫小弟分析分析!!!!!!!!

20 个解决方案

#1


晚上回去給你看

#2


謝謝

#3




只要是走http,就能監測到你的數據。怎么着也防不住小人的。

不過你可以對你傳輸的參數專門寫一個加密算法,傳遞數據時加密參數,這樣相對能安全一些。

#4


登錄機制~  未登錄禁止提交數據

#5


該回復於2012-04-26 09:25:03被版主刪除

#6


引用 3 樓  的回復:
只要是走http,就能監測到你的數據。怎么着也防不住小人的。

不過你可以對你傳輸的參數專門寫一個加密算法,傳遞數據時加密參數,這樣相對能安全一些。


也只能這樣了

#7


我個人覺得LZ在ajax的處理頁面判斷域名還是有必要的,不然不判斷其他人可以用form表單的post傳值來對你的處理頁面進行參數攻擊了。
第三方登陸的話我覺得用cookie加密存儲或者用asp.net form來驗證都是可以實現的。

#8


是的,別人本地表單直接提交,也會得到相應效果,所以你要驗證啊

在那個頁面,驗證用戶是否登陸,或者是否有權之類的

跟需要用戶登陸才可以查看的頁面,一個原理

#9


該回復於2012-04-26 09:29:50被版主刪除

#10


對,驗證用戶是否登陸.
再就是加密,
雙重保險.

#11


目前網站技術還是如此脆弱,謝謝各位老大的捧場

#12


一般網站都會存在這個post的問題,可以做個站外提交檢測。。。

#13


讓所謂的HACK提交好了,參數化全部接收。
根據情況后再處理。

#14


加入Token。
1.你分配一個密鑰給調用接口的人
2.讓調用者根據密鑰把所有參數加起來,通過加密計算出一個Token。
3.調用者把所有參數和簽名一起傳過來
4.服務器端接受到請求之后也通過同樣的算法計算出Token
5.對比傳過來的Token,一致,則可認為是正常請求,不一致時,可認為是遭到攻擊。

這種方法現在使用的很普遍

#15


如果是自己的網站頁面調用的話,那就判斷是否登錄。。。

#16


AJAX是不能跨域提交的,擼主放心,而且你提交的參數,走的是HTTP頭。雖然用抓包工具可見,但是相對來說是很安全的。你要做的只是類似放重復提交之類的,因為AJAX歸根結底還是請求,還是通過URL。

#17


如果還是不明白的話,就拿CSDN 的登錄模塊來研究。他返回的也是json。他提交的信息你隨便用個什么工具也能看到,(密碼是加了密的)。

#18


登陸驗證,權限驗證

#19


該回復於2012-04-26 18:57:44被版主刪除

#20


好啦,結貼,謝謝各位分析

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com