把管理员密码(加密后)直接写在 PHP 文件里,安全性有所提升吗?
不考虑旁注提权之后查看这个 PHP 文件,因为如果他/她能够查看 PHP 文件里的代码,那么他/她肯定也能看到 config.php 里保存的数据库密码。
2014-06-15 0:42 补充:
这里所说的防止被爆库是指降低被爆出管理员密码的概率,不考虑数据库中存在的其他密码(或者是这个站点不存在其他密码,只有管理员可以登录后台)
回复内容:
既然把管理员的密码存在数据库里有遭遇爆库的危险,那我把管理员的密码加密后当作一个常量直接写在 PHP 文件里,安全性会得到提升吗?
不考虑旁注提权之后查看这个 PHP 文件,因为如果他/她能够查看 PHP 文件里的代码,那么他/她肯定也能看到 config.php 里保存的数据库密码。
2014-06-15 0:42 补充:
这里所说的防止被爆库是指降低被爆出管理员密码的概率,不考虑数据库中存在的其他密码(或者是这个站点不存在其他密码,只有管理员可以登录后台)
管理员的密码存放在哪里都一样。
管理员密码即便被爆了出来也不一定能拿WebShell,看服务器安全方面做得如何。
PHP是可以访问数据库的,也可以对数据库执行一些操作,网站你不用数据库难道纯静态吗?开玩笑呢哈哈~ 只要爆了SQL、XSS等漏洞,那些黑客就有千百种奇淫技巧去想办法拿到WebShell,只要拿到WebShell了,你那密码放在那里都一样没有区别的。
提权的时候你后台的密码一般可以用来参考做弱口令~ 但是拿来做提权可能就说明了这个密码对题主来说通用性太强了。。。
网站的安全要做好,服务器的安全更要做好。
--------------------------------补充---------------------------------
没事给自己的代码做做代码审计,把服务器安全做好点。大部分能杜绝掉黑客的入侵,如果是放在虚拟主机上边的话。我只能说祝你好运,千百个网站放一块另一个被爆菊被提权跨到你哪儿也是无济于事~
看到你都要写死到文件了,不如来个障眼法,密码登录永远都是错误,只有特定的才能触发,比如get参数。
我觉得写在哪里都是一样的,因为现成密码都是按照一定算法加密的,即使得到了密码也不一定能还原出真实密码,如果算法强度够的话。所以说获得加密密码是没有什么意义的
所以说,安全不安全主要还不在密码这一块。抛开服务器配置问题和软件bug导致的漏洞,程序里的漏洞主要还是sql注入和xss。只要做好输入的过滤一般问题不大。
照楼主补充所说,密码强度足够的情况下是暴不出来的。
密码的保护和防止爆库完全是两个不同的问题,解决了一个并不能自动解决另外一个。
爆库的主要原因是SQL注入和XSS,并不是密码泄漏,只要你的PHP本身能访问数据库,而且程序中又有拼接SQL之类的漏洞,就算是密码没有泄漏一样会被爆。
以被脱裤为前提保护网站管理员密码?
保护入口、限制重试,还有防止不要被脱裤更加重要吧
其实我最近玩google authenticator 体验不错,稍作努力就可以搞定两步式动态密码验证,这里有网页版的实现:http://blog.tinisles.com/2011/10/google-authenticator-one-time-password-algorithm-in-javascript/
我会加密写在环境变量里边
暴力破解的去看下,放哪里都是一样的。
楼主说的加密应该是2中情况,1)加密成二进制无法反编译的,2)md5之类的加密
两种都是无法承受暴力破解的,加密成二进制反编译的,可以防止程序被盗,锁定,但是加密成md5的无防盗。
上一篇: 为什么最后一个var_dump()只能打印一个数组
下一篇: php开启安全模式后禁用的函数集合