使用define
存储mysql PDO连接的缺点是什么?例如,
define( 'DB_HOST', 'localhost' );
define( 'DB_USER', 'root' );
define( 'DB_PASS', 'xxx' );
define( 'DB_NAME', 'xxx' );
define( 'DSN', 'mysql:host='.DB_HOST.';dbname='.DB_NAME );
我一直在考虑像this example那样使用const
,但它有局限性。
例如,
'mysql:host='.DB_HOST.';dbname='.DB_NAME
与const
进行define ( 'WEBSITE_DOCROOT', str_replace( '\\', '/', dirname( __FILE__ ) ).'/' );
define( 'SCHEME', isset( $_SERVER['HTTPS'] ) ? 'https://' : 'http://' );
。(其他配置信息......)
define
$config = array(
'DB_USER' => 'root',
'DB_PW' => 'password'
);
似乎符合目的,但我不确定它是多么安全以及我应该注意使用define for store设置信息的任何事情?有什么建议吗?
另一种选择是将它们存储在一个类中,
the end user can screw the file and break the entire app
但是有人说这个选项是{{1}}(取自here)。用户如何搞砸文件?
答案 0 :(得分:2)
任何define
的内容都可用于PHP代码的所有部分,这可能会带来安全风险。如果使用变量,则可以限制数据的暴露,因为变量的范围有限。
但是有人说这个选项,最终用户可以搞砸文件并打破整个应用程序(取自这里)。用户如何搞砸文件?
这篇文章不是以网站用户的身份谈论用户,而是作为代码本身的用户(例如某人使用开源项目并编辑配置)。