Mam zaimplementowane strony zabezpieczone przed użyciem konkretnego bezpiecznego folderu (np. Folder HTTPS vs http na serwerze). Zacząłem używać Zend Framework i chciałbym, aby część aplikacji (np. Login) używała https. Szukałem w Google, a nawet tutaj, ale nie mogłem znaleźć niczego, co wyjaśniłoby, jak sobie z tym poradzić. Czy mogę mieć https dla określonych kontrolerów/działań? Dzięki.Jak zaimplementować protokół SSL w Zend MVC
7
A
Odpowiedz
13
Najczystsze sposobem jest posiadanie pliku ini dla konfiguracji SSL gdzie można włączyć obsługę SSL na poziomie modelu/kontroler/działania, jak w przykładzie:
Powiedzmy masz moduł/kontroler/działania, jak to:
SSLModule-> IndexController-> testAction
## ini file (can be config.ini also)
ssl.modules.SSLModule.require_ssl = true //-> entire module requires SSL
ssl.modules.SSLModule.Index.require_ssl = true //-> entire controller requires SSL
ssl.modules.SSLModule.Index.test.require_ssl = true //-> single action requires SSL
można analizować to albo poprzez config lub oddzielnie, aw pliku Bootstrap można dołączyć controllerplugin, jak ja tutaj.
Istnieje wiele innych sposobów, aby to zrobić, ale myślę, że masz pomysł!
class Application_Controllerplugins_Ssl extends Zend_Controller_Plugin_Abstract
{
public function preDispatch (Zend_Controller_Request_Abstract $request)
{
$shouldSecureUrl = false;
//get the config settings for SSL
$options = Application_ServiceManager::getConfig()->ssl;
//if config is empty, exit
if (!is_object($options))
return;
//simpler to use
$options = $options->toArray();
//only use it production environment
if (APPLICATION_ENV == 'production')
{
if (
(isset($options['modules'][$request->module]['require_ssl']) && $options['modules'][$request->module]['require_ssl']) ||
(isset($options['modules'][$request->module][$request->controller]['require_ssl']) && $options['modules'][$request->module][$request->controller]['require_ssl']) ||
(isset($options['modules'][$request->module][$request->controller][$request->action]['require_ssl']) && $options['modules'][$request->module][$request->controller][$request->action]['require_ssl'])
)
{
$shouldSecureUrl = true;
}
if ($shouldSecureUrl)
{
$this->_secureUrl($request);
}
}
}
protected function _secureUrl (Zend_Controller_Request_Abstract $request)
{
$server = $request->getServer();
$hostname = $server['HTTP_HOST'];
if (! $request->isSecure())
{
$url = Zend_Controller_Request_Http::SCHEME_HTTPS . "://" . $hostname .
$request->getPathInfo();
$redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
$redirector->setGoToUrl($url);
$redirector->redirectAndExit();
}
}
}
zapomniałem wspomnieć: aby dodać go w bootstrap:
$Zend_Controller_Front->registerPlugin(new Application_Controllerplugins_Ssl());
+3
Pracował jak urok. Wielkie dzięki, bardzo cenny wkład. – jgnasser
Powiązane problemy
- 1. Jak zaimplementować pasek boczny w Zend Framework
- 2. Dodaj protokół SSL do połączenia
- 3. Wzajemny protokół SSL - ile uwierzytelnienia jest wystarczające?
- 4. ASP.NET MVC - HTML.BeginForm i SSL
- 5. Jak zaimplementować płynne API w ASP.NET MVC?
- 6. Jak zaimplementować wzorzec MVC w aplikacji Tkinter
- 7. Jak zaimplementować stronicowanie w ASP.NET MVC?
- 8. Połączenie MySql SSL z Zend-Framework
- 9. Jak określić protokół SSL do użycia dla klasy WebClient
- 10. Jak mogę zaimplementować protokół XMPP dla mojego własnego klienta czatu?
- 11. Jak mogę zaimplementować połączenie Https/SSL w Asp.Net Web API?
- 12. Jak zaimplementować http2 bez ssl w serwerze Apache 2.4.18
- 13. Logowanie do MVC (Zend Framework)
- 14. Jak zaimplementować autouzupełnianie jquery przy użyciu Zend Framework 2?
- 15. Strony SSL pod ASP.NET MVC
- 16. Węzeł js - Procedury SSL: SSL23_GET_SERVER_HELLO: nieznany protokół:. Błąd
- 17. Czy protokół OAuth2 i protokół SSL wystarczą do zabezpieczenia interfejsu API
- 18. Zaawansowany protokół SSL: pośredni urząd certyfikacji i wdrażanie zagnieżdżonych skrzynek
- 19. Czy program ASP.NET Development Server (a.k.a. Cassini) obsługuje protokół SSL?
- 20. Błąd SSL dla protokołu HTTP POST (nieznany protokół)
- 21. Używanie tabel Zend Framework Db bez MVC
- 22. Jak zaimplementować bazy danych obiektów w Asp.net MVC
- 23. Jak zaimplementować stronę pełnoekranową "ładowanie ..." w ASP.NET MVC?
- 24. Jak zaimplementować funkcje wyszukiwania w aplikacjach ASP.NET MVC
- 25. Jak zaimplementować uwierzytelnianie niestandardowe w ASP.NET MVC 5
- 26. Komunikacja klienta i serwera przy użyciu protokołu SSL/C++ - protokół SSL nie działa.
- 27. Jak przedłużyć protokół w Swift
- 28. Próbuję zaimplementować protokół HTTPS na wybranych stronach, które wysyłają żądanie POST.
- 29. Czy warstwa usługi MVC + jest wspólna w zend lub PHP?
- 30. Kiedy należy zaimplementować javascript MVC framework
duplikat dla [How-to-get-sslmod-rewritezend-ram-mvc-working together] (http://stackoverflow.com/questions/380050/how-to-get-sslmod-rewritezend-framework-mvc-working-together) – criticus