|
|
1
4
帮你自己一个忙 标准图书馆 为了散列你的密码。 由于安全性往往比大多数程序员单独解决的问题复杂得多,而且有更多不可见的出错可能性,因此使用标准库几乎总是最简单、最安全(如果不是唯一的话)的选择。
标准图书馆
:
使用phpass(v0.2)的代码示例:
PHPASS已经在一些相当有名的项目中实施:
好的是你不需要担心细节,那些细节已经被有经验的人编程,并在网上被许多人评论过。
不管你做什么如果你去
我自己做,谢谢
方法,
不要使用
目前,使用
crypt
,使用crypt_blowfish是最佳实践。
有关密码存储方案的更多信息,您还可以阅读 Jeff `关于它的博客文章: You're Probably Storing Passwords Incorrectly |
|
|
2
2
我看那里没有什么真正的预防csrf攻击的措施。csrf(据我所知)是网站中最常被忽视/搞砸的漏洞。很多大人物都是通过csrf漏洞被黑客攻击的。 当前解决此问题的最佳方法是使用 synchronizer tokens. 对于如何正确地转义/编码用户输入,您最好非常虔诚。必须对插入数据库的内容进行转义,并且必须根据上下文对返回给用户的内容进行编码:css、html、javascript等都必须进行不同的编码。 此外,您不应该将sha-1与md5结合起来。虽然sha-1比md5更强大,但通过将其与md5结合,实际上是在削弱它。此外,这两种算法都不推荐用于新的应用程序。目前,您应该使用sha-256(它在php中是现成的)。 |
|
|
3
2
试图过度设计这种方法可能会破坏安全性。 你在使用什么会话处理程序?您是否检查过session_regent_id()重命名现有会话而不是复制该会话?如果是后者,则创建大量会话文件,通过随机搜索更容易找到。 如何处理用户拆分会话?这一行代码将根据浏览器和用户如何分割会话而中断。 您应该使用session_regent_id()的唯一地方是在对用户进行身份验证和用户注销时。
不,不,不。一直都是这样。 不会更改传入数据的表示形式。无论如何/validate/input,您应该始终/sanitize/output,而不是/sanitize/input。
没有什么能提高你的安全性
所以你把明文密码储存在用户机器上!这是 所以 不安全。如果你想要一个记住我的功能,那么用盐加密密码和有效期并存储。
所以用户可以通过返回同名的cookie来操作会话中存储的任何值?好的,所以他们可能无法预测散列,所以伪装用户是很困难的,但是有很多其他的方法可以用来破坏你的系统。 你已经尽力使你的系统安全-但你实际上所做的最多是混淆了你的系统中正常工作的部分。 C. |
|
|
4
0
您可能需要对照白名单检查user.rank,以确保该值存在于查找表中且有效(活动、未删除等),并强制进行类型转换和范围设置。 至于令牌,您将希望为期望从表单接收get/post数据的每个页面生成一个新的令牌。如果会话被劫持,则会话的令牌可能不足。为会话设置较短的超时时间可以减轻这种影响。 不要马上相信饼干里的任何东西,考虑使用 http://php.net/manual/en/book.filter.php 在会话中隐藏之前。 如果您计划为系统设置一个管理面板,那么最好强制设置密码强度,手动选择管理员登录名(在设置时优先选择管理员/密码库存登录)。 黑名单通常的登录名,如“A”;删除数据库…”和“管理员”,你知道演习。 使用最低权限帐户设置数据库时,您不希望访问者破坏您的表。 |
|
|
5
0
“密码是sha1和md5加密的” 为什么需要使用两个散列函数?我想你这样做是因为缺乏理解(没有冒犯!)。你应该读 this article on secure password schemes (提示:使用bcrypt)。 |
|
6
0
|
|
|
Bard.Mus · 迁移后的数据库字符集环境 1 年前 |
|
Efannnnnn · 将Id数据存储到任何页面 1 年前 |
|
|
yooooo · 用于在块中删除的存储过程-LOOP未执行 1 年前 |
|
John Beasley · 更新一定数量记录的连续日期 1 年前 |
|
|
ColinM · MySQL以前的结果查询返回不正确的值 1 年前 |
|
Sergey_Z · MySQL只需无条件连接2个表和交叉连接 1 年前 |