2017-08-07 78 views
1

我想送一個AJAX請求到服務器僅如果字符串的長度小於200和大於5是否有可能製作前端JS?

而且支票上的客戶機端規則,if聲明:

if (textLen < 200 && textLen > 5) { 
    // send ajax 
} 

任何用戶都可以像增加字符長度一樣操作前端腳本嗎?

如果是,如何?如果否,在客戶端驗證數據是否是最佳實踐?

提供服務器限制從所有比mydomain.com

+1

是的,用戶可以對他們的前端代碼進行任何操作。客戶端驗證僅僅是爲了方便;任何安全的事情都必須在服務器上完成。 –

+1

https://stackoverflow.com/a/45484708/476 – deceze

+1

@deceze HTTPS完全超出我的猜想。 OP詢問在瀏覽器中更改變量值? –

回答

2

是它很容易可以改變客戶端上的可變值等外部源post請求。只是不要依賴客戶端驗證。 不要假設在客戶端成功完成驗證是完美的。始終信任/取決於您的服務器端驗證。這是最好的。

+0

喜歡你的討論另一個答案。謝謝。 –

1

是的,任何人都可以更改客戶端代碼並刪除驗證檢查。所以總是在服務器端處理驗證。

+0

**如何刪除**驗證檢查? – BenM

+0

@BenM打開調試器,刪除行。 – deceze

+0

@BenM'if(valid){// reach server。}'。通過調試器工具,'valid = true'。 –

0

是的。您可以更改從服務器接收的任何代碼以顯示網頁。在鍵盤上按「F12」並開始修改。

關於你放在你身上的代碼是問題,我假設你希望客戶端檢查一個字符串的長度是否在最小和最大長度之間。顧名思義,該變量包含文本,如果是的話,修改代碼:

if (textLen.length < 200 && textLen.length > 5) { 
    // send ajax 
} 

在客戶端上修改代碼,所以它到達服務器之前,打開你的瀏覽器的開發工具(F12大多數瀏覽器)。雙擊你想改變的東西。

但是,要確保東西不被服務器接受,你應該始終驗證服務器端的所有內容。所以對於最大字符串長度爲200和最小長度爲5的要求也應該由服務器檢查,然後再繼續執行任何操作。當然,這與其他檢查緊密相關,例如檢查任何不需要的代碼,空格等。

相關問題