0
echo '<a class="bigbtn" href="'.'videoview.php?song_id='.$video['song_id'].'&'.'title='.$video['VideoTITLE'].'&'.'group='.$video['GroupName'].'&'.'artist='.$video['ByArtist'].'"></a>' ;

ユーザーがリンクを改ざんできないように、ブラウザに表示されたときにリンクを暗号化する最良の方法は何ですか? ミッション クリティカルなリンクではありません。しかし、もう少し安全にしたい。

私は urlencode を試し、 base64 でデコードしようとしましたが、そのような変数に値を代入しようとしました。

 $song_id = urldecode(base64_decode($_Get['song_id']));

しかし、変換は起こりませんでした。

、デコードは私が考えていた方法では起こりませんでした。

4

2 に答える 2

3

Base64 はバイナリ データを ASCII 文字列形式で表す方法であり、暗号化とは関係ありません。

暗号化/復号化がサーバー側で行われると仮定すると:

暗号化: mcrypt-encrypt。次に、mcrypt-decryptで復号化します。

実装例:

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "secret";
    $text = "Keep it secret, keep it safe";

    //encrypt
    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);

    //decrypt
    $originaltext = mcrypt_decrypt (MCRYPT_RIJNDAEL_256, $key ,$crypttext ,  MCRYPT_MODE_ECB, $iv);
?>
于 2013-01-01T20:27:55.740 に答える
0

変数や ID を難読化しても、ほとんど効果はありません。リソースを保護したい場合は、authorizationを使用してください。

大量のダウンロードのスクレイピングから保護したい場合は、IP モニタリングを使用してアクセス/クォータを監視します。

しかし、私の意見では、単純なクエリ/ URL の混乱は安価なソリューションであり、長期的には割に合わないと思います。

于 2013-01-01T20:42:43.257 に答える