2010-05-12 60 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