2012-02-04 5 views
1

Я читал много вопросов здесь о том, как логин может быть подключен к SSL и т. Д., Но все же идея не так понятна. Основываясь на том, что я прочитал, мне нужно установить SSL и установить на моем веб-сервере, чтобы я мог использовать защищенное соединение https на странице, где будет использоваться логин. Хорошо, я сделал эту часть, но все еще задаюсь вопросом, что включить в код входа, чтобы весь сеанс был выше https. в некоторых сайтах они упоминают, что я должен добавить этот код tep_href_link(FILENAME_ACCOUNT, '', 'SSL'), чтобы страница входа в систему или код были безопасными.php логин с SSL

любые комментарии будут оценены.

Большое спасибо.

Обновление: Я считаю, что этот код очень важно добавить, чтобы страница входа шла на https. if(!isset($_SERVER['HTTPS'])) { header("location: https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
}

+1

tep_href_link is from oscommerce. Вы используете oscommerce? В противном случае нет. Если вы правильно настроили свой веб-сервер, вам не нужно ничего делать в PHP. – Cfreak

+1

Ваш HTTPS работает? – Adi

+1

Если вы используете Apache, вы можете: http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html –

ответ

3

HTTPS представляет собой алгоритм для обеспечения связи transport layer, который шифрует то, что браузер и сервер отправляют друг другу. Зашифрованная форма, которая отправляется по сети, является дорогостоящим вычислительным образом, чтобы вернуться в исходное содержимое, если только кто-то дешифрует ciphertext имеет парный закрытый ключ (или используется алгоритм "computationally weak").

Это точка-точка (клиент отправляет запрос на сервер, сервер принимает, определяет ответ, отправляет ответ), поэтому браузер и сервер сначала exchange public keys, которые представляют то, что данные, которые вы отправляете или получаете, будут «скремблированы», против. Закрытый ключ принадлежит эмитенту открытого ключа, который позволяет компьютеру «дескремблировать» и получать исходный контент, отправленный получателю.

Поэтому, когда вы создаете пару частного/открытого ключа, закрытый ключ хранится (конфиденциально и секретно) на сервере, а связанный открытый ключ отправляется в браузер. Браузер аналогично делает то же самое и передает открытый ключ на сервер.

«Защита» конфиденциальной информации - это не все, что происходит; вы также можете использовать SSL/TLS для предотвращения подделки данными, например, или даже в качестве дополнительного шага проверки.

Чтобы получить HTTPS настройки и доступны для использования, вам необходимо:

  1. заготовить открытый/закрытый ключ (подписания органом сертификации или CA, потенциально дополнительно, в зависимости от ваших конечных пользователей) ,
  2. Установите его в хранилище ключей на сервере, доступном вашему веб-серверу. Во многих случаях OpenSSL используется для обоих этих шагов.
  3. Настройка вашей системы на использование HTTPS-адресов (для всех ресурсов, а не только для <form action="https://...">).

Пара примечаний:

  • Браузеры имеют свои собственные сертификаты, так что не беспокойтесь об этом.
  • Многие CMS»и рамки позволяют указать HTTPS на прикладном уровне

Вы можете использовать WireShark, чтобы проверить, что ваш компьютер действительно отправки и получения. Это может быть очень освещающим, особенно в сочетании с просмотром запроса/ответа в консолях Firebug или Chrome Net.

Справочник по онлайн-справочнику PHP содержит OpenSSL «книга». Вот example of how CodeIgniter handles configuring HTTPS at the application level.

Существуют различные учебники по настройке SSL в стеке LAMP. Вот вам учебник по WAMP2 HTTPS and SSL Setup, если вам нужна только среда разработки.

Если у вас есть общедоступная среда размещения, возможно, вы не сможете самостоятельно настроить SSL на сервере; которые могут быть обработаны администратором сервера. Проконсультируйтесь с вашим хозяином. Например, DreamHost имеет extensive docs.

+0

Спасибо, Джаред. Я прочитаю все ваши комментарии как можно скорее. –

+0

Большое спасибо Джареду. Я прочитал все заметки, и я должен сказать, блестящий. На данный момент я настроил SSL на своей веб-странице и принудительно использовал SSL для всех страниц. Наверное, я собираюсь проверить, что мой компьютер отправляет/получает с помощью wirehark. И для самого SSL это частный, а не общий. И он уже настроен и работает нормально. Все хорошо. Большое спасибо. –

+1

@Fxdigi, обратите внимание, что точка 3 ответа Джареда часто игнорируется, но очень важна. См. [Этот ответ] (http://stackoverflow.com/a/9105894/372643) для получения подробной информации о проблеме: проверка '$ _SERVER ['HTTPS']', используя ['SSLRequireSSL'] (http: // stackoverflow. com/a/3729555/372643) или использование 'mod_rewrite' для принудительного использования SSL со стороны сервера не устранит эти проблемы. Отправка запросов HTTPS в конечном итоге зависит от клиента: вы должны убедиться, что ваш сервер говорит ему об этом (используя соответствующие ссылки/URL-адреса). – Bruno

1

Ум, на быстрой Google, эта функция (tep_href_link) представляется частью osCommerce. Если ваш сайт правильно настроил SSL-сертификат, принудительное подключение пользователей к URL-адресу https должно быть прекрасным. Если вы не знаете, как это сделать, посмотрите в заголовки местоположения или mod_rewrite.

Кроме того, в качестве одной из сторон вам нужно будет сделать все ссылки на странице, проходящие через https. Это увеличит вероятность получения зеленой блокировки или w/e, когда пользователь придет на страницу, предполагая, что сертификат не подписан сам по себе.

+1

Не только ссылки, * все * ресурсы (включая файлы JS/CSS, изображения и т. Д.). –

+0

@JaredFarrish, правда, что! – quickshiftin

+0

@quickshiftin, true. Спасибо за комментарии. Вы правы в зеленом замке. Мой сайт показывает зеленый замок, когда я вхожу на главную страницу, потому что он перенаправляется в домен с помощью https, а все браузеры также показывают зеленый замок. Спасибо всем вам. С уважением –

Смежные вопросы