[英]Javascript form validation on client side without server side - is it safe?
假設我有某種形式的JavaScript客戶端驗證,而沒有服務器端驗證。
如果用戶在瀏覽器中禁用了javascript,將沒有“提交”按鈕,因此如果未啟用js,他將無法向我發送任何數據。
但是我不知道有什么方法可以從客戶端瀏覽器更改我的驗證指令,以便他可以向我發送不受信任的數據,並對我的數據庫造成一些損害。
在此先感謝您,並為我的(可能是)明顯的問題感到抱歉!!!
不,這不安全。 使用服務器端驗證。
例如,即使沒有瀏覽器,我也可以閱讀您的源代碼。 然后,只需使用CURL發送包含惡意數據的發布請求。
永遠不要相信客戶。
不,這不安全。 例如,我可以在瀏覽器中打開JavaScript調試器並覆蓋您的驗證。
能夠自行禁用javascript的任何人也可能也可以自行發出任意POST請求。 好的,我可能有點誇張,但這仍然不安全,因為有人可以在不使用瀏覽器的情況下執行POST請求,更不用說您的表單了。
我建議同時使用客戶端和服務器端驗證。
客戶端驗證的Benifit速度很快,在用戶輸入正確的輸入之前,我們從不打服務器。 這樣可以節省時間並避免用戶煩惱。 這對於大型表單確實很有幫助。 但是,缺點是壞人可以覆蓋客戶端驗證,因此,為避免這種情況,我們還應該在處理數據之前在服務器端進行驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.