輸入問題答案查看內容如何做比較安全?

來源:互聯網
上載者:User

,有這樣一個表單,需求就是回答問題正確才能查看內容,在一定時間如1天內再次訪問不用回答問題,請教各位一般通常可行的辦法是什嗎?

目前的做法是:回答正確了,寫一個cookie值為1,下次來判斷這個cookie值是否為1,否則需要重新回答問題,這樣做明顯不安全,偽造一個cookie訪問不就可以查看到受保護的內容了。

回複內容:

,有這樣一個表單,需求就是回答問題正確才能查看內容,在一定時間如1天內再次訪問不用回答問題,請教各位一般通常可行的辦法是什嗎?

目前的做法是:回答正確了,寫一個cookie值為1,下次來判斷這個cookie值是否為1,否則需要重新回答問題,這樣做明顯不安全,偽造一個cookie訪問不就可以查看到受保護的內容了。

你的做法接近了,但不夠安全,更安全的做法是產生一個隨機的Token,並設定有效期間。這個token由於是隨機的而且位元較多,不容易被偽造。

1.可以按樓上說的,你可以這樣做啊,值是隨機產生的,那麼你是不是想問你怎麼知道使用者傳過來的時候這個TOKEN是不是你隨機產生的?我覺得可以放在緩衝裡如REDIS,並給一個有效期間,他要是提交時我們查看沒有這個值我們就認為他自己偽造的或者說是到期了已經。
2.如果這個頁是使用者登入的,你可以根據他的使用者ID,在用DES加密產生一個COOKIE啊直接在COOKIE裡給有效期間。然後這樣你就不怕他是不是偽造了,因為有人想偽造時,他不知道你的DES加密時的KEY是多少,只有你自己知道。

這樣是否可行?
回答問題正確,存一個cookie,值是md5(今天日期+salt),下次訪問校正的時候,計算md5(今天日期+salt)是否和存的cookie相同,就可以了。但是這樣做,只能不用再次回答問題的有效時間是隔天就失效。

大家有更好的辦法嗎?

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.