0
在我的項目中,我通過將其張貼到一個php文件來存儲FORM數據。我通過buttonclick上的ajax發送數據,我正在做客戶端驗證,所以無論如何我不能做沒有JavaScript的數據庫插入,然後我需要服務器端驗證?當通過ajax發佈數據時,是否需要進行服務器端驗證?
在我的項目中,我通過將其張貼到一個php文件來存儲FORM數據。我通過buttonclick上的ajax發送數據,我正在做客戶端驗證,所以無論如何我不能做沒有JavaScript的數據庫插入,然後我需要服務器端驗證?當通過ajax發佈數據時,是否需要進行服務器端驗證?
絕對。客戶端運行的環境完全不在您的控制範圍之內,您應該認爲它是敵對的並且可能會受到影響。
你的問題還包含一個錯誤的假設。你說,「當數據通過AJAX發佈」。但你怎麼知道的?當你看到一些數據通過互聯網進入你的服務器時,你絕對沒辦法告訴數據來自哪個軟件。這就是想要發佈的內容,但除非您控制網絡中的每臺計算機,否則這就是您打算如何實現的原因。顯然,攻擊者(甚至是實驗者)不會遵守你的意願。
但是,如果JavaScript是diabled,就不可能插入數據 –
@AmitParmar:你不能假設什麼計算機和軟件不受你控制。有人可以提交任何他們想要的服務器。您*必須*驗證服務器中的所有內容,並考慮到您控制範圍之外的所有內容可能具有敵意。 (SQL注入攻擊是最明顯的這種攻擊。) –
嗯......我現在明白了..感謝您的指導,非常有用。 –