发布后这一段时间回来,我决定在PHP中创建我自己的注册/验证能力.我希望任何人都能指出改进的缺陷/机会,特别是在会议中存储的内容......
逻辑流程是:
1 - 用户注册使用电子邮件作为用户名,"网站名称"然后构成他们将访问的任何网址的一部分,密码至少6个字符,必须包含字母和数字(我知道这可能更强)
2 - 如果用户和站点是唯一的,那么我将这两者以及随机生成的字符串(salt)存储在我的数据库的auth表中的一行中.然后,我获取用户密码,将salt连接到它,并将此salted密码的md5哈希存储在同一数据库行中
3 - 当用户登录时,我获取她输入的密码并将盐连接到它,创建一个md5哈希,并将其与我存储在数据库中的密码进行比较 - 如果它们匹配,则用户已输入正确的密码,并将其用户名写入会话
4 - 在每个请求中,我使用会话中存储的用户名来查询数据库并读取与此用户关联的站点名称.然后我将它与url本身的站点名称进行比较,如果它们匹配,我设置一个可供其余或脚本访问的变量(不是全局变量,它只能由我的控制器读取,它决定用户是否可以看到特定页面)如果两个站点名称不匹配,则将用户重定向回登录
我担心的是有人可以写入会话,因此如果他们知道他们注册的用户名,就可以访问人们页面吗?你会如何防止这种情况发生?
在任何人指责我疏忽之前,这是一个个人学习项目的方式 - 我不会暴露任何客户数据!
我正在为我的公司开发一个ASP.net Web应用程序.有些用户在内部网络(Intranet)中使用此站点,有些用户使用Internet站点.我正在使用Windows身份验证模式.
我需要找到一种方法,不为Intranet用户提示 Windows身份验证模式,并为Internet用户提示 Windows身份验证模式.
我怎样才能做到这一点?
有没有办法(除了HTTP身份验证,我收集的内容本身就是因为互联网不安全?)对于一个"现实生活"网站来处理登录和身份验证而不是传统方式,使用会话cookie?
如何在C#域驱动设计项目中实现角色和安全性?关于它是应该由调用应用程序(ASP.NET MVC)还是在域模型本身(模型实体和服务)中实现,我们有一些争论.有些人认为它应该在网站本身,因为那是身份验证已经存在的地方.但这意味着每次与核心业务系统集成时都必须重新实现安全性.
例如:管理员应该能够在系统中执行几乎任何操作,例如编辑和删除记录(即他们可以删除用户的订单).另一方面,用户应该只能编辑和删除他们自己的记录(即他们可以在购物车中添加/删除项目).
顺便提一下,这里有一个很好的论文,涵盖了有关DDD和安全性的7种不同场景:
我个人倾向于使用PostSharp倾向于AOP,但之前没有做过多少工作,我犹豫不决.
我被要求在现有客户端服务器应用程序中针对Active Directory对用户进行身份验证提供支持.
此时,用户从客户端计算机提供用户名和密码,通过线路(加密)传递到我们的服务器进程,并与存储在数据库中的用户名/密码进行匹配.
最初,我认为这将是一个容易解决的问题,因为我可以简单地从我们的服务器进程中针对Active Directory验证用户的名称/密码.但事实证明,用户不必从我们的客户端应用程序输入密码,而是从当前的Windows登录会话中获取其凭据.
我现在面临的问题是如何在没有密码的情况下使用Active Directory进行身份验证? 我确信必须有一种方法可以某种方式将某种"令牌"从客户端传递到我们的服务器进程,这可以用作另一种身份验证方法,但到目前为止我的研究已经画了一个空白.
我们的服务器是用C++编写的,所以我们将使用win32 API.我还打算使用运行Windows 2008 AD LDS的虚拟机来开发和调试它- 我希望这对我想要实现的目标是足够的.
非常感谢任何帮助或建议.
我正在研究django中的一个项目,该项目要求在自己的username
命名空间中拥有单独的用户组.
例如,我可能有多个"组织",并且username
只需要在该组织内是唯一的.
我知道我可以通过使用包含用户名/组织ID的另一个模型来做到这一点,但是仍然会在defualt django auth上留下这个无用的(和必需的)字段User
,我必须填充一些内容.
我已经使用自己的auth后端编写了一个针对LDAP验证用户身份的方法.但是,正如我之前提到的,我仍然遇到如何填充/忽略username
默认django用户上的字段的问题.
有没有办法删除username
for Django auth用户的唯一性约束?
我已经创建了一个自托管的WCF REST服务(其中一些来自WCF REST Starter Kit Preview 2).这一切都很好.
我现在正在尝试向服务添加基本身份验证.但是我在WCF堆栈中遇到了一些相当大的障碍,导致我不能这样做.
似乎HttpListener
(自托管WCF服务在WCF堆栈中内部使用较低级别)阻止了我WWW-Authenticate
在自生成401 Unauthorized
响应上插入标头的尝试.为什么?
如果我忘记了这个WWW-Authenticate
标题(微软似乎也这样做了),我可以让身份验证工作.但这就是问题所在.如果我没有发回WWW-Authenticate
标题,那么Web浏览器将不会显示其标准的"登录"对话框.用户将只面对401 Unauthorized
错误页面而无法实际登录.
计算机和人类都应该可以访问REST服务(至少在GET请求级别).因此,我觉得WCF REST在这里并不遵守REST的基本部分.有人同意我的意见吗?
有没有人使用自托管WCF REST服务进行基本身份验证?如果是这样,你是怎么做到的?
PS:显然我打算使用不安全的基本身份验证的前提是我也会为我的服务提供HTTPS/SSL.但那是另一回事.
PPS:我已经尝试过WCF REST Contrib(http://wcfrestcontrib.codeplex.com/),但问题完全相同.看来此库尚未在自托管方案中进行测试.
谢谢.
authentication rest wcf basic-authentication wcf-rest-contrib
我创建了一个包含5个用户的列表.如何找出当前登录的用户?另请注意,如果有任何方法可以确定超级用户是否已登录?
我的要求是,我想将模板中某些页面的访问权限仅限于超级用户.
我正在寻找有关Java中的开源Iris扫描库的建议.之前有没有人可以为每次扫描构建一个独特的配置文件,并且能够进行身份验证.谢谢.
我正在尝试使用使用我的 Windows 身份验证的共享点站点。我可以使用该requests
模块访问该站点,但它要求我明确说明我的 Windows 密码。
import requests
from requests_ntlm import HttpNtlmAuth
SITE = "https://sharepointsite.com/"
PASSWORD = "pw"
USERNAME = "domain\\user"
response = requests.get(SITE, auth=HttpNtlmAuth(USERNAME,PASSWORD))
print response.status_code
Run Code Online (Sandbox Code Playgroud)
Python 有没有办法通过 Windows 身份验证访问该站点,这样我就不必提供密码?看起来这可能是可能的,requests_nltm
但我不知道如何。