私はユーザー入力からmySQLデータベースにphp関数を保存していますが、これらの関数を実行できる必要があります。危険なphp関数
私たちが知っているように、これはハッカーがかなりのウェブサイトをスイスチーズに変えることを可能にし、
これらの関数は単純であり、高度なPHPコーディングを必要としません。彼らはデータの単一の配列を扱うことに関するより多くのことです。
ハッカーが管理者セクションのIDに入ると、データベースに保存する前に深刻な被害を受ける可能性のあるPHP関数をフィルタするようになります。
"exec、shell_exec、system、passthru、popen、proc_open、proc_close"のようなものは、カールのような外部入力を取り除く必要があるものは削除する必要があります。
他に危険な可能性があり、削除する必要があるものは何ですか?
は、私もこのリストを見つけました:私は、ユーザー入力からMySQLデータベースへのPHPの関数を格納してい http://blog.eukhost.com/webhosting/dangerous-php-functions-must-be-disabled/apache_child_terminate
apache_setenv
define_syslog_variables
escapeshellarg
escapeshellcmd
eval
exec
fp
fput
ftp_connect
ftp_exec
ftp_get
ftp_login
ftp_nb_fput
ftp_put
ftp_raw
ftp_rawlist
highlight_file
ini_alter
ini_get_all
ini_restore
inject_code
mysql_pconnect
openlog
passthru
php_uname
phpAds_remoteInfo
phpAds_XmlRpc
phpAds_xmlrpcDecode
phpAds_xmlrpcEncode
popen
posix_getpwuid
posix_kill
posix_mkfifo
posix_setpgid
posix_setsid
posix_setuid
posix_setuid
posix_uname
proc_close
proc_get_status
proc_nice
proc_open
proc_terminate
shell_exec
syslog
system
xmlrpc_entity_decode
ホワイトリスト登録>>>>>>>ブラックリスト登録。また、実行可能コードをDBに格納しないことは、さらに優れています。 – delnan
経験豊富なプログラマーの手でどの機能が危険になるかは、かなり驚いています:)。あなたが本当にこれをしなければならないのであれば、@delnanが言うようにホワイトリストを使用してください。 – kapa
本当に何らかの形のユーザースクリプトを提供したい場合は、Luaなどのサンドボックス対応の言語で簡単に実行することをお勧めします。 – Amber