既然把管理员的密码存在数据库里有遭遇爆库的危险,那我把管理员的密码加密后当作一个常量直接写在 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的无防盗。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版