簡體   English   中英

使用javascript重定向安全嗎?

[英]is it safe to use javascript redirects?

我希望創建一個Ajax登錄表單,該表單將重定向登錄時的用戶-這將檢查數據庫中的用戶名和密碼,並向客戶端發送true值。

因此,我想做window.location="http://www.someplace.com/mypage.html";

這樣安全嗎? 用戶是否可以禁用JavaScript重定向?

用戶始終可以禁用基於javascript的任何內容。

就是說,使用javascript進行重定向本身並不是不安全的,而且我看不到濫用情況,只是破損情況。

總而言之,這取決於您如何定義安全性:)

這不是不安全的,但是有兩種不使用JS(或者如果有人禁用JS的重定向)的替代方法:

1)通過在您的頭部添加meta標簽

<meta http-equiv="refresh" content="0;url=http://www.someplace.com/mypage.htm/" />

2)更好,通過服務器端重定向即(PHP)

<?php
   header( 'Location: http://www.someplace.com/mypage.htm' ) ;
?>

編輯:當我回復@Spudley注釋時,這是另外兩種在未啟用JS的情況下重定向到頁面的方法。.在您的情況下,@ Ashley Ward我認為這是將頁面重定向為ajax形式的正確方法:)

ps表單應該同時以ajax和非ajax方式工作;)..記住其他用戶正確說的話:可以禁用JS

除了Martin的好答案之外,別忘了保護自己免受SQL注入攻擊:用戶可以非常輕松地自己訪問目標頁面,並發送帶有諸如1' OR 1=1類的惡意內容的“假” AJAX請求作為用戶名或密碼。

與您可能想到的不同,AJAX請求並未完全對用戶隱藏,並且可以使用任何人都可以使用的簡單工具輕松地檢測和處理AJAX請求。

請記住,Javascript都是在客戶端瀏覽器中運行的。 用戶可以看到該代碼,並使用正確的工具可以對其進行原位編輯。

因此,當您在瀏覽器中使用Javascript運行時, 沒有什么是“安全的”。 您應該始終假設惡意用戶可以並且將修改ajax調用,調整變量並更改JavaScript代碼流。

但是,只要您通過使服務器端代碼安全(例如,防止SQL注入攻擊等)來滿足此要求,就不必為此擔心太多。 黑客將試圖破壞您的網站,因此您無需擔心事情是否對他有用。

對於普通用戶而言,只需正常運行代碼即可,答案是肯定的:您的JS重定向應該是絕對安全的。 用戶可以關閉Javascript,但是如果禁用了JS,那么當然Ajax事件也不起作用。

如果您編寫了ajax代碼以為非JS用戶提供后備,那么您可能還希望為重定向提供一個后備,但很可能您的ajax后備會直接加載到重定向頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM