Как зашифровать URL - PullRequest
       1

Как зашифровать URL

0 голосов
/ 03 марта 2012

Я хочу знать, как зашифровать URL на Apache / PHP?

Например:

www.example.com / как к encrypt.html

до

www.example.com / DMQRzZWMDdGQtbndzBHNsawN0aXRsZQR0ZXN0AzcwMQR3b2UDMjQwMjEwNQ

Этот пример также показан на Yahoo, как и эта ссылка:

us.yahoo.com / _ylt = As6pPqj3t7OBn2LQbZCUU7abvZx4; _ylu = X3oDMTVocThw330824863

Я хочу знать, как это сделать, через JavaScript / PHP / Apache?

Ответы [ 3 ]

1 голос
/ 03 марта 2012

Вы, вероятно, ищете Apache mod_rewrite вместе с PHP. Этот URL не зашифрован (и не должен был быть зашифрован), вероятно, это просто ключ, который перенаправляет в базу данных на Yahoo! разъединяет. См. эту статью .

0 голосов
/ 10 марта 2014

Лучше всего выполнять операции безопасности на уровне базы данных.Вот как выполнить операции с базой данных MySQL с помощью PHP: Операции с базами данных PHP с MySQL .Затем у вас есть доступ ко всем операциям базы данных, связанным с безопасностью, таким как: Функции шифрования и сжатия .Таким образом, вы можете сгенерировать строку в базе данных и передать токен в параметре URL пользователю.Лучше также передать другой параметр, например имя пользователя, в URL-адрес, чтобы снизить риск безопасности.После ответа клиента вы просто берете параметры из URL и проверяете пользователя.Обязательно санируйте и проверяйте ввод перед выполнением операции с базой данных. Санируйте и проверяйте, прежде чем предположить, что данные безопасны.

И для информации, вы никогда не должны использовать JavaScript для выполнения важных операций безопасности, по крайней мере без серьезной оценки рисков и альтернативных вариантов.(Любой хакер увидит всю вашу логику безопасности в коде JavaScript.)

Обратите внимание, что вы можете получить параметры _ylt & _ylu из этого URL:

  • us.yahoo.com /_ylt = As6pPqj3t7OBn2LQbZCUU7abvZx4; _ylu = X3oDMTVocThw330824863

Эти параметры вы получите для работы с базой данных.Вы можете использовать их на определенной странице, например:

  • us.yahoo.com / myPage / _ylt = As6pPqj3t7OBn2LQbZCUU7abvZx4; _ylu = X3oDMTVocThw330824863
0 голосов
/ 03 марта 2012

Я не парень по 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...