2013-02-04 126 views
34

我有一個不是HttpOnly的cookie我可以通過JavaScript將此Cookie設置爲HttpOnly通過Javascript將Cookie設置爲HttpOnly

+1

如何通過JavaScript設置一個cookie本身不應該能夠操作的cookie?只需將它設置在服務器端。 – BalusC

+1

Cookie不是HttpOnly,我想通過Javascript將它設置爲HttpOnly。 –

+3

我想你錯過了HttpOnly的觀點。 – BalusC

回答

73

A HttpOnly Cookie意味着它的而不是可用於JavaScript等腳本語言。所以在JavaScript中絕對沒有可用的API來獲取/設置cookie的HttpOnly屬性,因爲那樣會破壞HttpOnly的含義。

只需在服務器端使用服務器端正在使用的任何服務器端語言進行設置即可。如果JavaScript是絕對必要的,你可以考慮讓它發送一些(ajax)請求,例如一些特定的請求參數觸發服務器端語言來創建一個HttpOnly cookie。但是,這仍然會讓黑客很容易通過XSS更改HttpOnly,並且仍然可以通過JS訪問cookie,從而使您的Cookie上的HttpOnly完全無用。

+2

我想知道如何像「EditThisCookie」瀏覽器擴展的客戶端應用程序更改HttpOnly標誌爲false。 – pavanw3b

+1

@ PavanW3b:它不使用像JavaScript這樣的客戶端腳本語言。這只是一個瀏覽器擴展。 – BalusC

+0

我從下面的文章中找到了解釋,並且評論說瀏覽器擴展具有提升的特權來修改HttpOnly cookie。 http://www.troyhunt.com/2013/03/c-is-for-cookie-h-is-for-hacker.html#comment-2264963488 – pavanw3b