2012-02-04 83 views
1

我已經閱讀了很多關於如何將登錄連接到SSL等問題,但仍然不清楚這個想法。根據我讀到的內容,我需要安裝SSL並安裝在我的Web服務器上,以便我可以在要使用登錄的頁面上使用https安全連接。好的,我已經完成了這部分工作,但仍然想知道爲了讓整個會話必須通過https才能登錄到代碼中。在一些網站中,他們提到我必須添加此代碼tep_href_link(FILENAME_ACCOUNT, '', 'SSL'),以便php登錄頁面或代碼安全。php用SSL登錄

任何意見將不勝感激。

非常感謝。

更新:我相信這段代碼是非常重要的添加,以便登錄頁面在https上。 if(!isset($_SERVER['HTTPS'])) { header("location: https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
}

+1

tep_href_link來自oscommerce。你在使用oscommerce嗎?否則不。如果您正確地配置Web服務器,則不需要在PHP中執行任何特殊的操作。 – Cfreak 2012-02-04 06:28:21

+1

是你的HTTPS的工作? – Adi 2012-02-04 06:33:54

+1

如果您使用Apache,您可以:http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html – 2012-02-04 07:11:10

回答

3

HTTPS表示使用算法來加密transport layer通信,該通信對瀏覽器和服務器互相發送的內容進行加密。通過網絡發送的加密表格是昂貴的以計算方式返回到它的原始內容,除非誰解密ciphertext具有配對的私鑰(或...使用"computationally weak"算法)。

這是點對點(客戶端向服務器發送請求,服務器接受,確定響應,發送響應),所以瀏覽器和服務器第一個exchange public keys代表你正在發送或接收的數據將被「加擾」反對。公鑰發行者持有私鑰,允許該計算機「解擾」並獲得發送給接收者的原始內容。

因此,當您創建私鑰/公鑰對時,私鑰會保留在服務器上(保密和祕密),並將相關公鑰發送到瀏覽器。同樣,瀏覽器也做同樣的事情並將公鑰發送到服務器。

「保護」敏感信息並非全部發生;您也可以使用SSL/TLS來防止篡改數據,或者甚至作爲附加驗證步驟。

要獲得HTTPS設置和供您使用,您需要:

  1. 採購一套公共/私有密鑰(由證書頒發機構簽署,或CA,則可能可選取決於你的最終用戶) 。
  2. 將它安裝到可用於您的Web服務器的服務器上的密鑰存儲區中。在許多情況下,這兩個步驟都使用OpenSSL。
  3. 將您的系統設置爲使用HTTPS URL(對於所有資源,而不僅僅是<form action="https://...">)。

夫婦的注意事項:

  • 瀏覽器都有自己的證書,所以不用擔心。
  • 許多CMS」和框架允許您在應用層

指定HTTPS您可以使用WireShark檢查你的電腦實際上是發送和接收。這可以非常明顯,特別是在查看Firebug或Chrome Net控制檯中的請求/響應時。

PHP在線手冊有OpenSSL「書」。這是一個example of how CodeIgniter handles configuring HTTPS at the application level

有關於如何在LAMP堆棧上設置SSL的各種教程。如果你只是需要一個開發環境,這裏是一個關於WAMP2 HTTPS and SSL Setup的教程。

如果您有共享主機環境,您可能無法自己在服務器上執行SSL設置;這可能由服務器管理員處理。檢查您的主機。例如,DreamHost有extensive docs

+0

謝謝Jared。我會盡快閱讀你所有的評論。 – 2012-02-04 08:49:50

+0

非常感謝Jared。我讀了所有的筆記,並且我要說出色。至於現在,我在我的網頁上設置了SSL,並強制SSL到所有頁面。我想我將通過使用wireshark來檢查我的電腦發送/接收的內容。對於SSL本身,它是一個私人的,而不是分享。它已經安裝並正常工作。現在都好。非常感謝。 – 2012-02-04 11:38:13

+1

@Fxdigi,注意到Jared的答案中的第3點經常被忽略,但是非常重要。有關該問題的詳細信息,請參閱[本答案](http://stackoverflow.com/a/9105894/372643):使用['SSLRequireSSL'](http:// stackoverflow)檢查'$ _SERVER ['HTTPS']'。 com/a/3729555/372643),或者使用'mod_rewrite'從服務器端強制使用SSL並不能解決這些問題。發送HTTPS的請求最終取決於客戶端:您應該確保您的服務器告知它這樣做(使用適當的鏈接/ URL)。 – Bruno 2012-02-04 18:36:18

1

在快速谷歌上,這個函數(tep_href_link)似乎是osCommerce的一部分。如果您的網站正確安裝了SSL證書,則強制用戶訪問https網址應該沒問題。如果你不知道如何去查看位置標題或mod_rewrite。

另外,您需要做的一件事是確保頁面上的所有鏈接都通過https。假設證書不是自簽名的,那麼當用戶進入頁面時,這將增加獲得綠色鎖定或w/e的可能性。

+1

不只是鏈接,*所有*資源(包括JS/CSS文件,圖像等)。 – 2012-02-04 07:11:47

+0

@JaredFarrish,真的! – quickshiftin 2012-02-04 07:13:18

+0

@quickshiftin,true。感謝您的評論。你對綠色鎖是正確的。當我進入主頁面時,我的網站顯示綠色鎖定,因爲它使用https重定向到域,所有瀏覽器也顯示綠色鎖定。感謝大家。 Regards – 2012-02-04 11:40:41