私はmcrypt
を使って暗号化されたphpファイルを持っています。これを解読する必要があります。ここでevalを使って暗号化されたファイルを読む
は、復号ある:
abstract class Encryption_Abstract {
const CYPHER = 'blowfish';
const MODE = 'cfb';
protected $key;
public
function __construct($key) {
$this->key = $key;
}
public function encrypt($plaintext) {
return $plaintext;
}
public function decrypt($crypttext) {
return $crypttext;
}
}
//decryptor
class Decryption extends Encryption_Abstract {
function decrypt($crypttext) {
$plaintext = '';
$td = mcrypt_module_open(self::CYPHER, '', self::MODE, '');
$ivsize = mcrypt_enc_get_iv_size($td);
$iv = substr($crypttext, 0, $ivsize);
$crypttext = substr($crypttext, $ivsize);
if ($iv) {
mcrypt_generic_init($td, $this - > key, $iv);
$plaintext = mdecrypt_generic($td, $crypttext);
}
return $plaintext;
}
}
は今、これは我々がそれをインスタンス化し、それを使用する方法である:
$enc = new Decryption(KEYS::PROD); //KEYS::PROD is the decryption key
eval($enc->decrypt(file_get_contents("key_file.txt"))); //<--
はない使用eval
する方法はありますか?それとも私の唯一の選択肢ですか?
@Gabi、結論ではそう、私は'eval()'を使う必要がありますか? – Neal
@Nealには〜to_する必要はありませんが、他の解決策には同様のセキュリティ問題があります。 –
@Gabi、ファイルを暗号化すれば本当に問題にはなりませんか?私たちがそれをしたのは唯一の理由ですから、クライアントはそれを使ってもらえません。 – Neal