我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔讲了很多关于.user.ini的文章了,今天说的是,利用.user.ini修改设置open_basedir,从而限制脚本包含动作只发生在制定目录里面。从而一定程度中,加强系统安全性。

苏南大叔:如何利用.user.ini文件,修改 open_basedir 加强php系统安全性? - user_ini_open_basedir
如何利用.user.ini文件,修改 open_basedir 加强php系统安全性?(图2-1)

还没有弄明白的.user.ini的同学,请点击这里查看:

.user.ini设置open_basedir

以苏南大叔的博客为例,项目设置open_basedir的值,网站根目录是:/home/wwwroot/newsn.net/。那么这个.user.ini的设置为:

open_basedir=/home/wwwroot/newsn.net/:/tmp/:/proc/

这样的话,该目录下面的php脚本,就只有三个地方可以require了。注意上述代码中的冒号分割。分割成了3个路径。

open_basedir效果展示

如果试图require或者include或者readdir上述目录之外的目录或者文件。将会得到错误提示。下面是个demo截图。试图跨站引用文件,报错了。

苏南大叔:如何利用.user.ini文件,修改 open_basedir 加强php系统安全性? - php-user-ini-safe
如何利用.user.ini文件,修改 open_basedir 加强php系统安全性?(图2-2)

Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/newsn.net/index.php) is not within the allowed path(s):

这就从一定意义上,保证了未知PHP代码可能带来的潜在的安全性问题。
值得注意的是,上述路径中,请一定要以斜线结尾,如果没有用斜线结尾的话,则代表的是一系列以对应名称开头的目录。比如:/user 代表的就是 /user(*)/ ,所以请一定要注意,斜线的使用。

总结

更多由苏南大叔带来的php相关文章,请点击这里:https://newsn.net/tag/php/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    userini