私はcodepad.org
phpコードを入力してコンパイルして与えるようなプロジェクトに取り組んでいますerror or output
私はいくつかの機能を無効にしたいのですがmysql_query
、誰かがそれを使用している場合は、次のような警告を表示したいと考えていますmysql_query() is disabled for some security reasons
機能を無効にするにはどうすればよいですか?
共有ホスティングでは、独自の PHP をコンパイルしてホーム ディレクトリにインストールする機会がまだ時々あります。そうすることで、コンパイル時に一部のライブラリを無効にすることができます。また、独自の PHP インストールに対応する独自のphp.ini にアクセスできます。
ほとんどの場合、共有ホスティングでは、これは PHP スクリプトを CGI として実行することを意味します。大きなパフォーマンスのペナルティ付き。
ところで、あなたはSQL インジェクションに関する懸念について言及しました。これは、不要なクエリを実行するためにコードを「悪用」しています。これは予期しない SQL関数の呼び出しではありません。後者はコード インジェクションであり、たとえば、信頼できないソースからコードをやみくもに実行した場合 (そのソースに言及するためだけに使用) が可能になる可能性があります。このようなセキュリティ ホールがある場合は、悪用を防ぐために「巧妙な構成」や「パッチ」だけに頼るのではなく、アプリケーションを作り直す必要があります。eval()
のphp.ini
オンsafe_mode
/はい
それから:
disable_functions = mysql_connect,system,exec,fopen,fputs,file_put_contents,mysql_query
共有サーバーでは、自分の仮想ルートを保護しない限り、おそらくこれを行うことはできません。.htaccess は、サーバー所有者の設定に従って制限されています
で、.htaccess
次のように php フラグを変更できます。
php_flag disable_functions = mysql_connect,system,exec,fopen,fputs,file_put_contents,mysql_query
(おそらく「=」なし)
それはまだサーバー構成に依存しています
私の推測では、拡張機能を削除することですphp.ini
:
変化する:
extension=php_mysql.dll
extension=php_mysqli.dll
に:
;extension=php_mysql.dll
;extension=php_mysqli.dll
アップデート:
を使用して MySQL サーバーの IP アドレスをブロックする.htaccess
と、ユーザーは接続できなくなります。