|
|
1
9
这是一个完全合理的方法。您的访问者将永远无法编辑服务器上的会话数据(除非服务器本身不安全,在这种情况下,任何事情都是公平的),因此会话中的LoggedIn=1值是完全安全的。
但是,请记住一个访问者劫持另一个访问者的会话(通过窃取会话密钥)的风险。帮助防止这种情况的一种方法是还存储访问者的IP地址(来自
|
|
|
2
3
有许多风险需要考虑:
所以我会说这很好(受(2)的约束),但要注意风险。至少遵循以下最佳实践:
|
|
|
3
1
回到你的问题:是的,那很好。然而,采取措施确保会议不被劫持。维基百科 actually has a fairly good article on it . 在我编写的大多数系统中,我都包含了验证远程IP没有更改的逻辑。您也可以将其存储在会话中,因为会话变量不会传递给用户(只有会话ID)。如果你真的想发挥创造力,你可以添加其他检查——用户代理,等等。 您还必须考虑会话攻击。检查推荐人。如果你有一个灾难性的操作,让我们称之为对DeleteMyAccount的POST,我可以编写一个表单提交和javascript,在一个无关网站的论坛帖子中点击DeleteMyAaccount,指望该会话出现在用户的信息中。 |
|
|
4
0
听起来不错;你可能想考虑设置一个过期时间(这样如果有人离开并打开浏览器,他们就不在了 也 很多危险)。 |
|
|
5
0
总的来说,你肯定在正确的轨道上。我建议您在会话中为用户使用ID,而不是用户名,因为ID是代码中更好的唯一引用。 此外,md5不再被认为对密码哈希足够强大:它太快了,无法哈希,你不希望攻击者需要一遍又一遍地运行它(而真正的用户只需要执行一次)。我希望我能找到参考,但前沿智慧是做很多轮的前沿哈希算法,比如sha512。 |
|
6
0
您可以使用COOKIE代替SESSION变量。您可以通过以下方式设置COOKIE setcookie('ID',$变量,time()+8*60*60); 您必须了解SQL注入。当您插入或更新用户文本框相关的数据库时,请注意SQL注入。通过htmlentities()函数插入/更新您的值。 |
|
|
Michael · 某些Windows客户端上的命名管道安全问题 2 年前 |
|
|
adamency · 是否可以从Go二进制文件的源代码中检索字符串? 2 年前 |
|
|
AlboSimo · PayPal Api密钥安全 2 年前 |