2017-04-01 70 views
-3

我正在向測試數據庫發送測驗問題。我想驗證測驗問題,使用Javascript驗證答案(包括文本和圖片),並通過AJAX將變量發送到PHP以將它們發送到數據庫。它安全嗎?正在向AJAX安全的數據庫發送數據嗎?

詳細信息:我正在創建管理面板。在管理面板管理員可以添加問題,問題的答案(答案可以是正常的文字和圖片)到網站。我想通過AJAX將這些問題發送給PHP。我必須在JS變量中存儲表單成員的值。我的問題是:無法訪問管理面板的人可以編輯存儲在這些變量中的數據,將它們發送給php,然後將數據發送到數據庫?

+0

爲什麼它會是不安全的? – Dai

+1

如果您在服務器端不存儲驗證值,那麼這是不安全的,因爲這可以由用戶操縱 –

+0

編號根本不。 –

回答

1

'安全'是相對的。基本上AJAX不過是一個基於JavaScript的普通HTTP請求。所以它不是比那樣更安全。爲了使其「安全」,您可以使用HTTPS來加密連接。這樣,你應該能夠防止注射和東西。關於作弊......如果真的想要,他可以。你可以做的唯一事情就是仔細檢查參數,從而檢測不規則性。也許添加一個隱藏的校驗和,它只允許特定的選項。

當然這並不安全;你的代碼在客戶端的機器上運行,所以客戶端可以完全控制它。你不能保留任何祕密 - 你可以混淆你心中的內容,但在一天結束的時候,我仍然可以看到,一時興起攔截並修改你的HTTP請求。

控制事情的唯一方法是讓客戶端根據其對遊戲狀態的瞭解來報告服務器驗證的操作;然後服務器向客戶端發送這些操作的結果,以便友好的客戶端可以將其遊戲狀態的概念與服務器的狀態保持一致。

如果您不準備這樣做,請不要打擾。如果你依賴的客戶在一定程度上不是敵對的,只需要一個人有時間殺了你就會被遺忘

+1

HTTPS連接可以保護您免受嗅探器的攻擊,但它不會阻止客戶端的數據操作。 –

+1

HTTPS不會阻止任何類型的注入攻擊。它阻止了請求的內容被中間人看到。 – ADyson

+0

是的,這就是爲什麼'安全'!但是有一些方法可以防止操縱:像;你可以發送一個散列給客戶端。當調用ajax時 - 也發送哈希值。然後在服務器上,你可以再次消化並檢查。 –