2010-05-12 61 views
1

我想創建Web應用程序與管理/檢查部分被保護。假設我爲SSL設置了subdomain.mydomain.com,我想確保所有絕密的東西;)結賬頁面和管理部分安全地傳輸。如下構建我的應用程序可以嗎?Web應用程序與安全部分,會話和相關的問題

subdomain.mydomain.com 
    adminSectionFolder 
     adminPage1.php 
     adminPage2.php 
    checkoutPagesFolder 
     checkoutPage1.php 
     checkoutPage2.php 
     checkoutPage3.php 
    homepage.php 
    loginPage.php 
    someOtherPage.php 
    someNonSecureFolder 
     nonSecurePage1.php 
     nonSecurePage2.php 
     nonSecurePage3.php 
    imagesFolder 
     image1.jpg 
     image2.jpg 
     image3.jpg 

用戶將通過http訪問我的Web應用程序,因爲沒有必要爲主頁和類似的SSL。結帳/管理頁面將不得不通過https訪問,但我會確保通過.htaccess重定向。我還想在網站的每個頁面上都有登錄表單,其中包括非安全頁面。現在,我的問題是:

  1. 我是否有非安全頁如http://subdomain.mydomain.com/homepage.php形式和形式將數據發送到HTTPS://subdomain.mydomain.com/loginPage.php,在數據被髮送加密的如果它是從https://subdomain.mydomain.com/homepage.php發送的?我意識到用戶不會看到掛鎖,但瀏覽器仍然應該加密它,是嗎?

編輯:我的歉意..上面的粗體字我最初鍵入HTTP,但HTTPS的意思,我的壞

2.如果在安全頁面loginPage.php(或通過https其他任何訪問該實例)我創建的會話,會話ID將被分配,並在我的網絡應用程序的情況下。類似登錄用戶的用戶名。我是否可以從http://subdomain.mydomain.com/homepage.php訪問這些會話變量以顯示問候消息?如果會話ID存儲在cookie中,那麼我認爲這會很麻煩,但是有人可以澄清它應該如何完成?通過SSL發送用戶名和密碼似乎很重要。

3.與上述問題相關..我認爲它會通過SSL保護登錄是否有意義,所以usenrame/password將被安全地傳輸,然後會話ID被傳輸到沒有SSL?我的意思是,如果有人抓到用戶名和密碼正在傳輸,或者抓到了會話ID,它會不會變得一樣?請讓我知道,如果我在這裏有道理,因爲感覺我錯過了一些重要的東西。

編輯:我想出了主意,但再次請讓我知道,如果這將工作。如上所述,假設http和https之間的共享會話與通過普通http(不是https)在用戶中登錄一樣安全,我猜所有非安全頁面,比如主頁等,我可以檢查用戶是否已經登錄,以及如果是的話從php重定向到https版本的同一頁面。因此,用戶從homepage.php填寫登錄表單,在ssl詳細信息發送到後端,所以可能https://.../homepage.php。嘗試訪問http://.../someOtherPage.php腳本將始終檢查會話是否已創建,如果是,則將用戶重定向到此頁面的https版本,以便https://.../someOtherPage.php。這會起作用嗎?

4.爲避免瀏覽器彈出消息「此頁面包含非安全項目...」,我的鏈接指向css,圖像和所有資產,例如,在http://subdomain.mydomain.com/checkoutPage1.php的情況下應該是絕對如此「/images/image1.jpg」或相對如此「../images/image1.jpg」?我想其中的一個將不得不工作:)

哇,這是很長的帖子,感謝您的耐心,如果你得到了遠和任何答案:)呵呵葉和我使用的PHP /阿帕奇在共享主機

回答

0

如果SSL終端位於網絡服務器本身,那麼您可能需要爲安全和非安全部分配置單獨的文檔根目錄 - 雖然您可以指定這兩個文件都引用相同的物理目錄,但您將被綁定到在零件之間切換結。類似地,如果您的SSL終端在Web服務器之前,您沒有系統地分離安全和非安全部分。

將安全和非安全部分分離爲單獨樹狀物很多 - 請注意,如果您在安全頁面上有非SSL內容,用戶將收到警告消息。

問候您的具體問題

  1. NO - 數據加密是否依賴於它打算,而不是它是從哪裏

  2. 是未來 - 但前提是你沒有設置secure_only cookie標誌 - 請注意,如果您按照我上面的建議,還需要確保cookie路徑設置爲'/'

  3. 處理用戶名和密碼的頁面必須是安全的。如果沒有,那麼你暴露了你的客戶身份驗證細節(大多數人對他們訪問的所有站點都使用相同的密碼),任何運行網絡嗅探器或代理的人都可以訪問。

您的編輯讓我有點困惑。 SSL的計算成本很高,速度很慢 - 所以你想盡量減少它的使用 - 但你需要平衡這與你的用戶對安全性的看法 - 不要從SSL切換到非SSL,儘管它對於用戶來說是非常安全的由非SSL發送到SSL頁面的頁面上的詳細信息,用戶可能不理解這種區別。

  1. 請參閱上面我的答案的第一部分。

C.

+0

問題1我輸入HTTP而是意味着發送到https ..遺憾的混亂,我想那麼你的答案是肯定的:) – spirytus 2010-05-12 18:32:16