标签: logonserver

实现用户登录系统的正确方法

我想创建一个用户登录系统,以便学习.我有几个问题.

我做了一些研究,发现实现用户登录系统的正确方法是在数据库中存储用户名/ id和密码的加密/散列版本.当用户登录时,密码在客户端加密(MD5,SHA-1等)并发送到服务器,并与数据库中的密码进行比较.如果匹配,则用户成功登录.

此实现可防止DBA或程序员在数据库中看到密码的明文.它还可以防止黑客在传输过程中拦截真实密码.

这是我困惑的地方:

  1. 如果黑客知道密码的哈希/加密版本(通过黑客入侵数据库)或DBA,程序员只需简单地读取数据库中的文本即可获得密码的哈希版本.然后,他们可以轻松地创建一个程序,将这个哈希版本的密码发送到服务器,允许他们成功登录.如果他们可以这样做,加密密码似乎不是很有用.我想我在这里误解了一些东西.

  2. 这是(我上面描述的方式)实现用户登录功能的最流行方式吗?它是否遵循当前的最佳做法?我是否必须手动完成所有操作,或者某些数据库是否具有执行相同操作的内置功能?是否有最常用的方法/方法为网站或网络应用程序执行此操作?如果是这样,请向我提供详细信息.

  3. 我以前的公司使用couchDB存储用户登录信息,包括密码.他们没有对加密方面做太多的事情.他们说couchDB会自动加密密码并将其存储在文档中.我不确定这是否安全.如果是这样,那对程序员来说非常方便,因为它节省了大量的工作.

  4. 这种方式(第3点)是否足以保证正常使用?其他数据库系统如mySQL有这种能力可以做同样的事情吗?如果是这样,是否意味着使用mySQL内置方法足够安全?

我不是在寻找一种非常安全的实现用户登录功能的方法.我更愿意为大多数Web应用程序寻找一种流行,易于实现,正确,安全的方法.请给我一些建议.提供的详细信息将非常感谢.

authentication authorization login logonserver password-encryption

15
推荐指数
2
解决办法
1万
查看次数

是否可以为您拥有的站点/服务器设置cookie?

这是我的问题的快速版本:

当cookie用于其他服务器(在这种情况下是Exchange邮件服务器)时,是否可以以某种方式将cookie设置到客户端的浏览器中?在这种情况下,尝试设置cookie的服务器位于"intranet.myschool.edu",交换服务器位于"owa_server.myschool.edu".


这是完整的问题:

我有一个PHP脚本,它使用cURL对启用了基于表单的身份验证的Exchange服务器进行HTTP POST.

当我成功进行HTTP POST(包括发布网址中的用户/传递),Exchange Server(或更具体地说,https://my.school.edu/exchweb/bin/auth/owaauth.dll文件)输出cookies.具体来说,它输出"sessionid"和"cadata"id.

将这些cookie ID写入服务器上的文本文件后,cURL/PHP可以引用它,然后从Exchange/OWA服务器请求数据(通过webdav等).

那部分有效.我想解决的问题是现在将cookie ID传递给客户端浏览器,以便他们可以使用这些cookie ID自动登录到自己的OWA帐户.

本质上,我希望我们的用户使用他们的Active Directory ID登录我们的Intranet,并查看他们最近的电子邮件的快照.然后,如果他们需要,我会给他们一个小的链接切换到完整的OWA Web应用程序.当这种切换发生时,我不希望他们必须手动登录OWA.由于他们已经在Intranet的前面提交了他们的Active Directory用户名和密码,我希望他们能够自动登录到OWA.

我应该注意,由于我们混合使用Mac OS,Windows和Linux,因此无法使用Windows身份验证尝试进行单点登录.

我以为我能够做一个"setcookie"并分配cURL获得的cookie ID并将它们放入客户端浏览器中.

这不可能吗?是不可能以这种方式"欺骗"Exchange/OWA(或任何其他网站).我有cURL捕获的合法cookie ID.有没有办法将这些传递给另一台计算机上的客户端浏览器?

在最糟糕的情况下,使用Javascript只是自动将用户名和密码粘贴到OWA登录页面是我唯一的希望吗?有没有人对如何避免我的Exchange/OWA双重登录问题有任何其他想法?

感谢您提供的任何帮助!

php cookies curl exchange-server logonserver

2
推荐指数
1
解决办法
1176
查看次数

在C#中获取域LogonServer

在命令提示符中,我可以通过键入以下内容来获取域登录服务​​器:

echo %logonserver%
Run Code Online (Sandbox Code Playgroud)

如何在C#中获得相同的结果?

c# dns logonserver

1
推荐指数
1
解决办法
3876
查看次数