我只有一个页面,我想强制作为HTTPS页面访问(Apache上的PHP).如何在不使整个目录需要HTTPS的情况下执行此操作?或者,如果您从HTTP页面向HTTPS页面提交表单,它是通过HTTPS而不是HTTP发送的吗?
这是我的例子:
http://www.example.com/some-page.php
我希望它只能通过以下方式访问:
https://www.example.com/some-page.php
当然,我可以把这个页面的所有链接指向HTTPS版本,但这并不能阻止一些傻瓜故意通过HTTP访问它...
我想到的一件事是在PHP文件的标题中放置一个重定向来检查以确保它们正在访问HTTPS版本:
if($_SERVER["SCRIPT_URI"] == "http://www.example.com/some-page.php"){
  header('Location: https://www.example.com/some-page.php');
}
但这不是正确的方法,可以吗?
顺便说一句,请不要注意URL.我知道如果它实际上是一个有购物车等的页面,你会以不同的方式做到这一点.您可以将其视为一个网站,该网站以一个价格销售一件商品,您可以在其中输入您的信用卡信息,然后将其提交到外部网站上的支付网关,以便明确向您的卡收费一次.
我在Windows Vista上使用XAMPP.在我的发展中,我有http://127.0.0.1/test_website/.
我如何http://127.0.0.1/test_website/使用PHP?
我试过这样的东西,但没有一个有用.
echo dirname(__FILE__)
or
echo basename(__FILE__);
etc.
有没有办法检查当前页面是否使用SSL打开?例如,我希望我的登录页面(login.php)检查是否使用SSL(https://mywebserver.com/login.php)访问它.如果没有,请将它们重定向到页面的SSL版本.
差不多,我想让用户安全地使用该页面.
如何使用PHP重定向到同一页面?
例如,我的本地网址是:
http://localhost/myweb/index.php
如何在我的网站内重定向到另一个页面,说:
header("Location: clients.php");
我知道这可能是错的,但我真的需要把整个事情搞定吗?如果不是以后怎么http://localhost/办?
有没有办法做这样的事情?此外,我有很多代码,然后在完成处理一些代码后...我试图重定向使用它.这可以吗?
我去网上寻找检测服务器是否使用HTTPS连接的方法,但没有一个网站似乎有所有答案(以及一些不同的答案).究竟是什么方法来检测服务器是否正在使用与PHP的HTTPS连接?我需要知道几种检测SSL的方法,因为我的一些脚本被重新分配,各种服务器处理不同的事情.
我有一个(HTTPS)login.php页面,它仍然是HTTPS(即用户登录后进入帐户仪表板).现在问题是用户登录到安全仪表板时点击了非敏感页面(HTTP)about-us.php页面,会话不通过HTTP传输,因为我有session.cookie_secure = 1,这意味着用户似乎在HTTP页面上注销.
但是,当用户返回仪表板页面或任何敏感帐户页面时,我被告知他仍然应该登录(即从HTTP返回到HTTPS)?但事实并非如此,他似乎也登录了HTTPS连接?
我相信我错过了造成这个问题的事情.这是我的代码:
这是PHP头文件,在login.php页面上调用它来启动会话:
session_start();
session_regenerate_id(true); /*avoid session fixation attempt*/
/*Create and check how long session has been started (over 5 mins) regenerate id - avoid session hijack*/
if(!isset($_SESSION['CREATED'])) 
{
    $_SESSION['CREATED'] = time();/*time created session, ie from login/contact advertiser/email_confirm only ways for new session to start*/
} 
elseif(time() - $_SESSION['CREATED'] > 300) 
{
    /*session started more than 5 mins(300 secs) ago*/
    session_regenerate_id(true); /*change session ID for the current session and invalidate old session ID*/
    $_SESSION['CREATED'] = time(); /*update …我想检测用户是否正在查看安全页面,如果没有则重定向(用于登录).
但是,在我看到服务器变量和代理(现在)告诉我这$_SERVER['HTTPS']是'on'URI明确指示的情况之前,我的网站通过代理.它还显示'on'用户何时"安全"导航.
导航http://并https://输出$_SERVER['SERVER_PORT']= 443.
我没有能力对代理进行任何更改,所以我想知道:
我挖掘这个问题的想法,但他们主要围绕$_SERVER['HTTPS']变量值得信赖.呸!
似乎这个问题至少经历过类似的问题,但是他/她能够通过调整apache解决方案来解决它.
是否有任何其他PHP SERVER变量或技巧可用于检测用户的URI开头的内容?查看我的网站http与https时$ _SERVER变量之间的唯一区别如下:
这些物品中的任何一个都足够坚固,可以在不分裂的情况下施加重量并在以后引起疼痛吗?也许我不应该相信通过代理过滤的任何东西,因为它可能在任何给定时间发生变化.
以下是我为此目的使用JavaScript的计划; 这是我最好的吗?
function confirmSSL() {
    if(location.protocol != "https:") {
        var locale = location.href;
        locale = locale.replace(/http:\/\//,"https://");
        location.replace(locale);
    }
}
<body onLoad="confirmSSL()">...
我想如果用户在我的社区中禁用了JavaScript,那么他们希望知道他们在做什么.他们应该能够手动进入安全区域.什么样的<noscript>建议是司空见惯/良好做法?也许是这样的事情:
<noscript>使用https://blah.more.egg/fake导航以保护您的信息.</noscript>
有效的PHP解决方案(有很好的解释)将优先考虑正确的答案.随意提交更好的JavaScript实现或链接到一个.
非常感谢!
在Symfony 2中,我想检查当前请求是否安全(SSL),并且我知道我们可以使用纯php执行此操作,例如检查$ _SERVER ['https'].但是,我想知道是否有任何Symfony方法/帮助器已经帮助我们确定?
home->page->post当我们单击主菜单中的任何页面时,如何创建面包屑名称,打开该时间创建面包屑home ->page名称的帖子列表,但是现在当我们单击任何时间时,面包屑创建home->post类别name->post名称就是当我们单击帖子类别时面包屑布局上的名称显示不同,我们希望其转到页面链接,而不是类别链接。因此,当我们打开任何帖子时,我们都需要创建类似于该home->page name->post名称的面包屑,因此,当我们单击页面名称时,请打开帖子列表页面,而不是类别页面。