關(guān)于ajax,data數(shù)據(jù)源那里,我一般用的在jq便簽?zāi)抢锇研枰猵ost的值直接丟到某個(gè)元素里,然后抓取。這樣用瀏覽器控制臺改變一下頁面屬性,ajax的post的值也被改變了。
雖然我后端有用php判斷一下用戶是否本人,但也只能做到這種程度。
我看過某個(gè)網(wǎng)站的頁面相關(guān)元素值是一直增加的,這種手段也可以避免元素的修改攻擊
請問如何做到,或者有什么手段避免ajax抓取的數(shù)據(jù)源頭被控制臺或者其他手段給改變到。
純文字描述,要是看不懂我可以貼圖表明
ajax 處理
...
$('.jq_btn_del').click(function () {
var i=$(this).attr('jqid');
alert(i)
if(vardel){
...
$.ajax({
...
type:'post',
data:{'course_id':i,...},
datatype:'json'
...
}
})
前端頁面
<td>
<a class="jq_btn_del"
jqid="{$vo.sharing_id}" >刪除</a>
</td>
控制臺
我用控制臺改變了圖中劃線部分jqid
,結(jié)果ajax的處理數(shù)據(jù)也被改變了。
我知道后臺要過濾判斷,但是面對提交數(shù)據(jù)多的話,肯定有疏漏。
我自己也想過,直接全部數(shù)據(jù)丟json,然后在獲取一個(gè)id,根據(jù)id獲取json里的數(shù)據(jù)在處理判斷。
我見過有人再類型jqid
哪里做一個(gè)時(shí)間累加值來避免修改。請問大家一般針對頁面的數(shù)據(jù)處理是怎么弄,jq,html是暴露的。我知道jq代碼在控制臺改變不了。,如果在foreach中的話,jq觸發(fā)起碼傳一個(gè)值,那么這個(gè)值就很危險(xiǎn)了。我說的很亂...
只是防止控制臺修改的話,我暫時(shí)只知道 cookie設(shè)置httpOnly這種只有通過后臺會話方式才能修改的方式。
如果只是防跨域修改的,sessionStorage和localStorage可以。但是這兩個(gè)都不能防止用戶直接打開控制臺注入。
其實(shí)最終的安全措施都應(yīng)該就后臺進(jìn)行,攔截過濾。
“不要相信任何的來自用戶輸入”
==========
你是擔(dān)心非法的js改變了你綁定在dom上的數(shù)據(jù),導(dǎo)致你刪掉了不該刪掉的數(shù)據(jù)?
你試試用事件的形式吧 將操作綁定到你的dom元素上。
$('.jq_btn_del').each(function(){
var id = $(this).data('id')
$(this).click(function(){
deleteFuction(id)
})
})
大概這么個(gè)意思。