0

私はcodepad.orgphpコードを入力してコンパイルして与えるようなプロジェクトに取り組んでいますerror or output

私はいくつかの機能を無効にしたいのですがmysql_query、誰かがそれを使用している場合は、次のような警告を表示したいと考えていますmysql_query() is disabled for some security reasons

機能を無効にするにはどうすればよいですか?

4

3 に答える 3

1

共有ホスティングでは、独自の PHP をコンパイルしてホーム ディレクトリにインストールする機会がまだ時々あります。そうすることで、コンパイル時に一部のライブラリを無効にすることができます。また、独自の PHP インストールに対応する独自のphp.ini にアクセスできます。

ほとんどの場合、共有ホスティングでは、これは PHP スクリプトを CGI として実行することを意味します。大きなパフォーマンスのペナルティ付き。

ところで、あなたはSQL インジェクションに関する懸念について言及しました。これは、不要なクエリを実行するためにコードを「悪用」しています。これは予期しない SQL関数の呼び出しではありません。後者はコード インジェクションであり、たとえば、信頼できないソースからコードをやみくもに実行した場合 (そのソースに言及するためだけに使用) が可能になる可能性があります。このようなセキュリティ ホールがある場合は、悪用を防ぐために「巧妙な構成」や「パッチ」だけに頼るのではなく、アプリケーションを作り直す必要があります。eval()

于 2013-06-26T08:10:46.607 に答える
1

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

(おそらく「=」なし)

それはまだサーバー構成に依存しています

于 2013-06-26T07:54:19.800 に答える
0

私の推測では、拡張機能を削除することですphp.ini:

変化する:

extension=php_mysql.dll
extension=php_mysqli.dll 

に:

;extension=php_mysql.dll
;extension=php_mysqli.dll

アップデート:

を使用して MySQL サーバーの IP アドレスをブロックする.htaccessと、ユーザーは接続できなくなります。

于 2013-06-26T07:53:12.267 に答える