在研究一些安全問題的時候,有一個問題,我們可以猜測在web服務器上運行的rand(timestamp)序列的生成。他說我們的第一個目標應該是服務器崩潰(假設服務器將在1分鐘內啓動),我們可以將我們的生成器與服務器同步,然後由網絡服務器生成的rand(時間戳)可以與我們的生成器相同。如果在網絡服務器上運行rand(時間戳)如何工作?
我很迷惑,如果我們有一個函數rand(時間戳),那豈不是依賴於系統的時間戳或服務器上的「時間」郵票?
P.S: 問一個一般性的問題 - 它不依賴,如果它是在JAVA/PHP/ASP。只是詢問Web服務器/編譯器如何工作這樣的代碼?
可能是其模糊的問題,但我想澄清。
因此可以說,如果我要測試我自己的webapp潛在的安全威脅。忘記密碼(暫時認爲它適用於臨時生成的字符串)選項,發送一個像http:// localhost/project/resetpwd = 1&key = 324123 所以我的問題,如果密鑰正在生成「蘭特(時間戳)」是否可以猜測? –
如果你知道如何準確地調用rand函數,你可以精確地重現它,否則你就知道rand值的順序,並可以從某個特定的點開始依次嘗試它們...... –
所以我們可以說,我創建了一個生成器生成密鑰,那麼我肯定可以從這個序列的密鑰中至少有一個密鑰,這將工作?對? 那麼應該是什麼理想的解決方案呢?有一個針對用戶的臨時密鑰的數據庫條目 - 但仍然可以利用,不是嗎? –