2009-09-16 57 views
0

我有一個4步形式的過程。我的表單是否安全?

  1. form.php的
  2. validation.php
  3. review.php
  4. complete.php

form.php的職位,以validate.php這取決於驗證重定向或者回form.php或review.php。最後一步是complete.php

每個頁面都使用HTTPS調用,除了validate.php,這是創建SESSION變量的位置,然後重定向回form.php或review.php,調用https。

瀏覽器上的鎖永遠不會消失,但我被告知是否發佈到相對路徑(不明確調用https)表單不安全。

這是真的嗎?我安全嗎?有沒有辦法檢查或證明表單過程是否安全?

有人告訴我這是安全的,但我只是想確保我不承擔責任。

我在表單帖子上使用相對路徑,因爲當使用HTTPS明確調用頁面時,不會創建SESSION變量。如果任何人有一個可能的解決方案,那也會很棒。

回答

6

儘管沒有明確發佈到例如https://your-server.com/validate.php,但您使用相對鏈接(例如action =「validate.php」)的事實意味着它仍然在使用HTTPS的每一步。

簡答 - 協議在相對鏈接上不會更改。因此,如果form.php不是HTTPS,表單變量將不會通過相對鏈接安全地提交。

1

可以使用相對路徑。確保您可以使用網絡數據包查看器應用程序來查看內容是否被加密。然而,有一件事關乎你的代碼,你是否在會話變量中存儲了驗證的數據?如果是這樣,你確定沒有人可以訪問除root用戶和php以外的會話值。我建議將驗證值存儲在數據庫中,以防萬一,您可以使用crontab刪除過時的記錄。

+0

我將敏感信息存儲在SESSION變量中,直到complete.php存儲在數據庫中。我怎麼能確定只有root和php可以訪問變量? – chris 2009-09-16 12:43:44

+0

您可以檢查訪問權限,但是允許PHP(實際上是用戶Apache)進入該目錄將允許某些腳本訪問這些文件;除非PHP有一些非常嚴格的安全措施。我使用數據庫只是爲了確保使用seLinux阻止訪問除/ var/www/html之外的任何目錄。由於seLinux對於遠程訪問權限(與文件系統訪問權限分開)非常熱心,因此這是一種可行的方法。 – 2009-09-16 13:31:59

2

在瀏覽器上的鎖從來沒有消失 但如果你張貼到相對 路徑(沒有要求HTTPS明確)的 形式不保證有人告訴我。

這是垃圾。相對URI是相對URI,不會導致協議發生變化。

如果通過HTTPS請求頁面且URI是相對的,則下一個請求也將使用HTTPS。

我使用的,因爲會話變量的arent創建 網頁時使用HTTPS

您必須誤診的問題,明確呼籲表單提交 的相對路徑。瀏覽器在內部將相對URI解析爲絕對URI。發送的數據沒有差異。

+0

我的意思是,我本來想發帖的形式是行動=「https://site.com/validate.php」和什麼也沒有發生。更改爲action =「validate.php」修復了它,但我無法確定我是否保持安全。 – chris 2009-09-16 12:47:55

+0

堆棧切割http部分,但是。任何想法爲什麼在表單動作中使用絕對路徑會導致問題? – chris 2009-09-16 12:59:40

1

如果你有數據發佈到或者信息發送回正在使用以完成從validate.php交易並沒有使用HTTPS的數據瀏覽器,那麼你必須在你的應用程序一個潛在的漏洞。如果使用相對路徑調用validate.php,則從通過HTTPS加載的頁面調用它,則默認情況下它將使用HTTPS - 如果未明確指定,則相對路徑會繼承協議,主機名和端口。

這並不意味着您的頁面是安全的。這意味着正在發送的數據正在加密。您還可以有幾個問題(弱密碼,SQL注入,跨站腳本等),您需要處理使用HTTPS,即使傳輸數據。如果您至少使用HTTPS,那麼您的數據傳輸將更難攔截或欺騙。