在我的新应用程序API中,我必须检查来自第三方网址的请求应该是https。如果它不是https,我必须将消息返回为"连接不安全'。任何人都可以帮助我吗?
答案 0 :(得分:11)
你在这里:
Determining If The Request Is Over HTTPS
if (Request::secure())
{
//
}
答案 1 :(得分:1)
Daniel Tran的回答仅对于信息而言是正确的HTTPS类型请求在请求中有一个额外的字段 HTTPS 。有时这个字段也可以等于 off ,但没有别的。
所以你可以编写像
这样的代码if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') {
doSomething();
}
Laravel Request Class也继承了一些与symphony完全相似的东西。你可以找到;
vendor / symfony / http-foundatiton / Request.php
public function isSecure()
{
if ($this->isFromTrustedProxy() && self::$trustedHeaders[self::HEADER_CLIENT_PROTO] && $proto = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PROTO])) {
return in_array(strtolower(current(explode(',', $proto))), array('https', 'on', 'ssl', '1'));
}
$https = $this->server->get('HTTPS');
return !empty($https) && 'off' !== strtolower($https);
}
答案 2 :(得分:0)
在Laravel Request类中,使用getSchemeAndHttpHost()方法
{{Request :: getSchemeAndHttpHost()}}
例如返回:http://example.com或http://192.0.0.1或https://example.com
返回协议/域名