ユーザーが任意のPHPを実行して結果を取得できるJavaIRCアプリケーションがあります。これが使用される目的の一例を次に示します。
btc: <php>$btc = json_decode(file_get_contents('https://btc-e.com/api/2/1/ticker'), true); $ticker = $btc['ticker']; echo "Current BTC Ticker: High: $".$ticker['high']." Low: $".$ticker['low']." Average: $" . $ticker['avg'];
Pythonのセットアップもありますが、PHPはコード内のどこにも改行を必要としないため、PHPが好きです。(これはIRCであるため、Webでロードされた.pyファイルを実行しない限り改行を与えることはできません)
問題は、次のように、人々がシステムを悪用しようとするのを防ぐ方法です。
<php>echo readfile("/etc/passwd");
これは、明らかに、すべての人が見ることができるようにpasswdファイルを読み取ります。
readfile()をブロックしようとした後も、この問題が発生しています。
<php>$rf = readfile; echo $rf("/etc/passwd");
このシステムをどのように保護すればよいでしょうか。(完全なコードはgithubにあり、興味のある人はhttps://github.com/clone1018/Shocky)
余談ですが、すべてがVMにあるため、実際の機密情報は公開されていません。したがって、これは「時限爆弾」などではありません。ただし、それでもロックダウンしたいと思います。