Я хочу знать, как зашифровать URL-адрес на Apache / PHP?
Например:
www.example.com/how-to-encrypt.html
в
www.example.com/DMQRzZWMDdGQtbndzBHNsawN0aXRsZQR0ZXN0AzcwMQR3b2UDMjQwMjEwNQ
Этот пример также видел на yahoo, как и эта ссылка:
us.yahoo.com/_ylt=As6pPqj3t7OBn2LQbZCUU7abvZx4;_ylu=X3oDMTVocThw330824863
Я хочу знать, как это сделать, через JavaScript / PHP / Apache?
Вероятно, вы ищете Apache mod_rewrite вместе с PHP. Этот URL-адрес не является (и не должен был быть зашифрован), это, вероятно, просто ключ, который перенаправляет на базу данных на Yahoo! разъединяет. См. Эту статью .
Лучше всего выполнять операции безопасности на уровне базы данных. Вот как выполнять операции базы данных MySQL с помощью PHP: PHP Database Operations с MySQL . Затем у вас есть доступ ко всем операциям базы данных, связанным с безопасностью, например: Функции шифрования и сжатия . Таким образом, вы можете сгенерировать строку в базе данных и передать пользователю токен в URL-параметре. Лучше также передать еще один параметр, например имя пользователя, в URL-адрес, чтобы снизить риск безопасности. После ответа клиента вы просто извлекаете параметры из URL-адреса и проверяете пользователя. Обязательно выполните дезинфекцию и проверку ввода перед выполнением операции с базой данных. Санируйте и проверяйте, прежде чем считать данные безопасными.
И для информации, вы никогда не должны использовать JavaScript для выполнения важных операций безопасности, по крайней мере, не без серьезной оценки рисков и альтернативных вариантов. (Любой хакер увидит всю вашу логику безопасности в коде JavaScript.)
Обратите внимание, что вы можете захватить параметры _ylt & _ylu из этого URL:
Эти параметры – это то, что вы будете захватывать для своей работы с базой данных. Вы можете использовать их на определенной странице следующим образом:
Я не парень PHP, но быстрый поиск в Google привел меня к этой ссылке .
class Encryption { var $skey = "SuPerEncKey2010"; // you can change it public function safe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data; } public function safe_b64decode($string) { $data = str_replace(array('-','_'),array('+','/'),$string); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr('====', $mod4); } return base64_decode($data); } public function encode($value){ if(!$value){return false;} $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv); return trim($this->safe_b64encode($crypttext)); } public function decode($value){ if(!$value){return false;} $crypttext = $this->safe_b64decode($value); $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv); return trim($decrypttext); } }
и использование
$this->encrypt->encode('Your data'); $this->encrypt->decode('Your encrypted data');