【发布时间】:2017-01-23 17:38:50
【问题描述】:
我想知道是否有一种快速的方法可以将基于 zf2 骨架的现有 zend 框架 2 应用程序转换为完整的https?当一切都在http 上时,包括ajax 请求
【问题讨论】:
标签: http security https zend-framework2
我想知道是否有一种快速的方法可以将基于 zf2 骨架的现有 zend 框架 2 应用程序转换为完整的https?当一切都在http 上时,包括ajax 请求
【问题讨论】:
标签: http security https zend-framework2
最简单、最安全的方法之一是将http 的所有传入流量/请求永久重定向到https。
您可以通过将重定向规则添加到端口 80 的虚拟主机来执行此操作。请查看 this answer on security.stackexchange.com 了解有关如何执行此操作的详细信息。
您应该考虑参考security.stackexchange.com 以获取有关此主题的帖子。此 StackExchange 网站不适合处理此类安全问题。
【讨论】:
也许不是完美的解决方案,但有一些来自 zfmodules.com 的模块具有一些功能
希望对你有帮助!
【讨论】:
我已经在一个使用多个站点的项目中完成了这项工作,一些是 http,另一些是 https。
在你的 module.config 中,你需要添加一个路由监听器到 onBootstrap 函数。
use Zend\Mvc\MvcEvent;
...
$eventManager = $event->getApplication()->getEventManager();
$eventManager->attach(MvcEvent::EVENT_ROUTE, array($this, 'onRoute'), -100);
并添加 onRoute 函数。
public function onRoute(MvcEvent $event)
{
$uri = $event->getRequest()->getUri();
$scheme = $uri->getScheme();
if ($scheme !== 'https') {
$uri->setScheme('https');
$response = $event->getResponse();
$response->getHeaders()->addHeaderLine('Location', $uri);
$response->setStatusCode(302);
$response->sendHeaders();
$event->stopPropagation(true);
}
}
这将强制所有 http 请求重定向到 https。
我希望这会有所帮助。
【讨论】: