Для Apache вы можете использовать mod_ssl
для принудительного SSL с помощью SSLRequireSSL Directive
:
Эта директива запрещает доступ, если только HTTP over SSL (т.е. HTTPS) включен для текущего соединения. Это очень удобно внутри виртуального хоста или каталогов с поддержкой SSL для защиты от ошибок конфигурации, которые выставляют материал, который должен быть защищен. Когда эта директива присутствует, все запросы отклоняются, которые не используют SSL.
blockquote>Это не будет делать переадресацию на https. Чтобы перенаправить, попробуйте следующее с
mod_rewrite
в вашем файле .htaccessRewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
или любом из различных подходов, приведенных в
Вы также можете решить это из PHP в случае, если ваш провайдер отключил .htaccess (что маловероятно, так как вы его просили, но в любом случае)
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') { if(!headers_sent()) { header("Status: 301 Moved Permanently"); header(sprintf( 'Location: https://%s%s', $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'] )); exit(); } }
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
mysql_real_escape_string()
библиотечная функция MySQL вызовов mysql_real_escape_string, который предварительно ожидает обратные косые черты к следующим символам: \x00, \n, \r, \, ', "и \x1a.
string addslashes ( string $str )
Возвращает строку с обратными косыми чертами перед символами, которые должны быть заключены в кавычки в запросах базы данных и т.д. Эти символы являются одинарной кавычкой ('), двойная кавычка ("), обратная косая черта (\) и NUL (ПУСТОЙ байт).
Они влияют на различные символы. mysql_real_escape_string
характерно для MySQL. Addslashes является просто общей функцией, которая может относиться к другим вещам, а также MySQL.
mysql_real_escape_string()
обладает дополнительным преимуществом выхода из ввода текста правильно относительно набора символов базы данных через дополнительный link_identifier параметр.
Осведомленность набора символов является критическим различием. addslashes()
добавит наклонная черта перед каждым двоичным представлением на восемь битов каждого символа, которого оставят.
При использовании некоторой формы многобайтового набора символов, это возможно, хотя, вероятно, только посредством плохого дизайна набора символов, что одна или обе половины шестнадцати или тридцатидвухбитового символьного представления идентичны восьми битам символа addslashes()
добавила бы наклонная черта к.
В таких случаях Вы могли бы добавить наклонную черту перед символом, которого нельзя оставить или, хуже все еще, Вы могли бы получить наклонную черту посреди шестнадцати (или тридцать два) разрядный символ, который повредит данные.
Если необходимо выйти из содержания в запросах базы данных, необходимо всегда использовать mysql_real_escape_string()
если это возможно. addslashes()
прекрасен, если Вы уверены, база данных или таблица используют ASCII на 7 или 8 битов, кодирующий только.
mysql_real_escape_string
должен использоваться, когда Вы получаете двоичные данные, addslashes
для ввода текста.
Вы видите различия здесь: mysql-real-escape-string и addslashes
Это кажется этим mysql_real_escape_string
двоично-безопасно - состояния документации:
Если двоичные данные должны быть вставлены, эта функция должна использоваться.
Я думаю, что, вероятно, более безопасно всегда использовать mysql_real_escape_string
чем addslashes.