「php.ini」で定義できる「disable_functions」という項目があると思います
「disable_functions」にカンマ区切りで関数名を記載するとその関数を使えなくすることができます
利用しているPHPのバージョンは「7.3.24」です
disable_functions string
このディレクティブを使うと、特定の関数を無効にすることができます。 関数名の一覧をカンマ区切りで指定します。
このディレクティブで無効にできるのは 内部の関数だけです。 ユーザーが定義した関数 は影響を受けません。
とのことで、試しにechoを禁止してみました
disable_functions = echo
再起動後
<?php echo 'abcd';
結果
abcd
ん??
echo は関数じゃないのか?
ではexit()で
disable_functions = exit
再起動後
<?php exit('abcd');
結果
abcd
なんで??
ではサンプルによくあるphpinfoを禁止にしてみる
disable_functions = phpinfo
再起動後
<?php phpinfo();
結果
PHP Warning: phpinfo() has been disabled for security reasons in /var/www/html/bou3/webroot/test.php on line 2
これは期待する結果になりました
ここで疑問なのですが、echoやexitは関数ではないのでしょうか?
マニュアルにはしっかりと「関数」と書かれています
https://www.php.net/manual/ja/indexes.functions.php
それか「disable_functions」で無効にできる関数は限定的なのなのでしょうか
その場合「disable_functions」で無効にできる関数の一覧が欲しいのですが
マニュアルには書かれていないようです
https://www.php.net/manual/ja/ini.core.php
ここら辺の仕様に詳しい方おられましたらご教授いただけたらと存じます
お忙しい中恐縮ですがご確認よろしくお願い致します
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/24 02:09
2021/02/24 02:51 編集