簡體   English   中英

如何防止HTML中的客戶端更改數據屬性?

[英]how to prevent client-side change data-attributes in HTML?

我有清單項目:

<li class='pick' data-id='1'>1</li>
<li class='pick' data-id='2'>2</li>
<li class='pick' data-id='3'>3</li>
<li class='pick' data-id='4'>4</li>

<script type="text/javascript">
    $(document).on('click', '.pick', function(){
        item = $(this).attr('data-id');
        //add item to Cookie
    });
</script>

但是,如果客戶端從瀏覽器“檢查代碼”編輯或添加新元素:

<li class='pick' data-id='1'>1111111</li>
<li class='pick' data-id='9999999'>unknown</li>
...

現在,我的cookie很亂。

有什么方法可以獲取原始數據,或者我必須在服務器端進行驗證才能添加到Cookie中?

我也正在尋找其他類似方法的最佳實踐。 謝謝,

通常,所有客戶端數據都可以由用戶操縱。 這是多人游戲和其他類型的聯網任務中的常見問題。 考慮一個游戲客戶端,該客戶端定期向主服務器報告其位置。 很容易看出該客戶端是如何被黑客入侵的 ,以便向服務器發送錯誤的職位,並導致“傳送”或“快速黑客入侵 ”。

由於這些原因,任何對應用程序安全至關重要的數據都應始終在服務器端進行驗證。

因此,在游戲示例中,我們將設計游戲而不是定期發送位置,而是發送玩家輸入,然后服務器將基於最近的已知位置和輸入(即forward )計算新位置,再加上大量其他技巧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM