相关疑难解决方法(0)

检测HTTP或HTTPS,然后在JavaScript中强制使用HTTPS

有没有办法检测HTTP或HTTPS,然后强制使用HTTPS与JavaScript?

我有一些代码用于检测HTTP或HTTPS,但我不能强制它使用https:.

我正在使用window.location.protocol属性来设置站点的任何内容,https:然后刷新页面以希望重新加载加载到浏览器中的新https'ed URL.

if (window.location.protocol != "https:") {
   window.location.protocol = "https:";
   window.location.reload();
}
Run Code Online (Sandbox Code Playgroud)

javascript https window.location

278
推荐指数
7
解决办法
23万
查看次数

如何在不使用$ _SERVER ['HTTPS']的情况下查看是否使用HTTPS

我在网上看过很多教程,说你需要检查$_SERVER['HTTPS']服务器连接是否用HTTPS保护.我的问题是,在我使用的某些服务器上,$_SERVER['HTTPS']是一个未定义的变量导致错误.是否有另一个我可以检查的变量应该始终定义?

为了清楚起见,我目前正在使用此代码来解决它是否是HTTPS连接:

if(isset($_SERVER['HTTPS'])) {
    if ($_SERVER['HTTPS'] == "on") {
        $secure_connection = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

php https

185
推荐指数
9
解决办法
24万
查看次数

window.location与只是位置

在网络上,我看到大量的JavaScript程序员写作window.location而不仅仅是location.我很好奇是否有人可以提供解释原因.window是全局对象,因此没有必要包括 - 不是吗?我的意思是,你不要看的人写的window.Math.floor还是new window.Date(),所以我很好奇,为什么它会与指定location.

我理解这location被认为是你所在窗口的"属性",我认为这是有道理的.但即便如此,我也没有理由指定全局对象; 首先不可能覆盖location,不是没有重定向页面.

那么,这只是一个长期使用的怪癖,它与我们编写JavaScript的方式相结合,还是有一些切实的理由以这种方式做事?我查了一下谷歌,但是唉,我什么也没想到......

javascript location window.location

69
推荐指数
5
解决办法
1万
查看次数

如何使用PHP检测安全连接(https)?

目前我的服务器上已包含SSL.想通过https强制我的用户使用登录页面登录.

<?php

  if (empty($_SERVER['https']) || $_SERVER['https'] != 'on') {
    header('location: https://my_login_page');
    exit();
    }

  # rest of code
  ...
Run Code Online (Sandbox Code Playgroud)

但是当没有SSL时,这是一个问题.

现在我有情况.用户请求关注URL

http://domain.com/login.php
Run Code Online (Sandbox Code Playgroud)

在这里,我无法访问$_SERVER['https']并希望确保可以将用户重定向到

https://domain.com/login.php
Run Code Online (Sandbox Code Playgroud)

例如,SSL证书在一段时间后过期,并希望保持用户使用登录w/out安全连接.

我的目标是这样的例子:

if (ssl_installed() && (empty($_SERVER['https']) || $_SERVER[] != 'on')) {
  header('location: https://domain.com/login.php');
  exit();
  }

# when there's no SSL it continues using HTTP
Run Code Online (Sandbox Code Playgroud)

是的,想写函数(例如ssl_installed():),true当可能使用安全连接时返回,否则false.

我已经尝试过使用get_headers()并意识到它总是会对https://链接返回false .

可能的方法:

我已经有了解决方案.我的数据库中的配置表包含行ssl=1(或0),并且在建立数据库连接后我使用此值来判断是否可以使用SSL,并且上面提到的函数使用此值返回结果.

我的问题是:有更简单的解决方案吗?

要明确:我正在寻找PHP-ONLY SOLUTION(自动检测)!

任何帮助,将不胜感激.

php security ssl https

0
推荐指数
1
解决办法
8397
查看次数

标签 统计

https ×3

javascript ×2

php ×2

window.location ×2

location ×1

security ×1

ssl ×1