iT邦幫忙

1

如何防止前端 js 被竄改?

  • 分享至 

  • xImage

假設是透過 "id"selector 抓取數據(例如.text())透過 ajax 丟到後端
利用 e.currentTarget.dataset.XXX
能如何避免被瀏覽器竄改?
一定要從後端給 value 嗎?
我想問問 jquery 有沒有這個問題的解決方式?
最近有點苦惱~即便 ajax 改成 POST 也是無用
如何有效“防小人”呢?

看更多先前的討論...收起先前的討論...
wingkawa iT邦新手 3 級 ‧ 2018-11-01 17:57:45 檢舉
前端驗一次防君子,後段再驗一次防小人。
最高原則就是前端使用者傳來的東西全部不可信!
Zaku iT邦新手 3 級 ‧ 2018-11-01 18:00:13 檢舉
給一下你的案例怎麼個被偷法比較好解,如過世傳送可以用SHA加密再送出等等,但不清楚你要的是什麼
前端使用者傳來的東西全部不可信 +1
前端的東西如何防被修改,這一直是一個不可能的任務。

其實道理也很簡單,因為前端不是你可以控管的地方。所以沒有所謂不能修改的防護。當然其實還是有幾招可以參考。只是那只是變成很難修改。並不是不能修改。

如解密性的js。送特殊碼的驗証方式。這些都是在防一但被修改了,送來後端可以馬上知道的做法。

曾經遇過天兵寫購物車。居然將結帳金額用post傳進來當結帳的金額。
造成了有人可以用1元來結帳。
這我是現在的其中一位客戶發生的事。後期我是幫他換掉購物車的程式。
因為看的很可怕。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
Dion
iT邦新手 5 級 ‧ 2018-11-01 22:58:19
最佳解答

只能說老話一句,前端來的東西都不能信任。
做了就知道這個安全原則

火爆浪子 iT邦研究生 1 級 ‧ 2018-11-02 00:45:19 檢舉

我想說js 有做些相關的防禦機制

froce iT邦大師 1 級 ‧ 2018-11-02 08:30:10 檢舉

JS能做的大概只有程式碼混淆,加強一點別人看的難度而已。
後端驗證一定要做。

fillano iT邦超人 1 級 ‧ 2018-11-02 09:13:07 檢舉

看過一些惡意的Javascript,他混淆的方式是:把惡意的程式碼當作字串切成幾個部份然後分別用base64編碼,執行時是用base64解碼後把字串組起來然後eval。

1
小魚
iT邦大師 1 級 ‧ 2018-11-01 20:58:02

只要是前端就能改.
所謂的右鍵不能用不能複製什麼的,
也全部都可以破解.
結案...

火爆浪子 iT邦研究生 1 級 ‧ 2018-11-02 00:45:01 檢舉

所以總歸一句就是前端跟後端都必須算一次,前端只是顯示給使用者看?

我要發表回答

立即登入回答