所有
我正在研究微控制器(特定的PIC32MZ),可通过网络远程访问。微控制器提供了有效的TCP / IP协议栈实现,我可以成功地使用浏览器与微控制器进行通信。
如果有多个用户访问微型用户,是否有关于如何安全地区分多个用户的指南?
我不想重新发明轮子......我看了一下基本访问控制 - 但这是一个很大的禁忌......
我还有一个登录页面,所以我可以要求输入userName和密码,但我是否必须在本地创建和维护数据结构来管理各种用户?
鉴于问题无处不在,我认为(希望)已经建立了关于如何在嵌入式环境中区分和管理多个用户的指导方针。
感谢您的帮助和帮助。
此致 蒙特拉
----编辑----
P.S。 - 如果我真的需要自己编写所有代码,这就是我想出的流程图(反馈再次受到赞赏)
browser requests web page and sends a (possibly uninitialized) sessionID
server extracts IP/sessionID
if IP is blacklisted
{
deny web page and (re)start timer
}
else // possible legit request
{
if IP/sessionID is valid // existing user !
{
process request
}
else // new user?
{
if activeConnections < max AND globalNumberOfFailures < max // if we have connections available and we are not under attack
{
request credentials
if credentials are valid // legit user
{
create new unique sessionID
update IP/sessionID table
process request (and return sessionID)
activeConnections++
}
else // distracted user ?
{
deny request
globalNumberOfFailures++ (start timer) // system wide attack ?
if first fail for that IP
{
add IP to list of suspicious IPs
}
IP_failCounter++
if IP_failCounter > max
{
blacklist IP, start timer
}
}
}
else
deny request
}
}
答案 0 :(得分:0)
A人是第一次访问网站,他看到登录表格。 他填写并使用http POST方法发送到您的服务器。
您的服务器获取POST方法,检查凭据是否有效 如果一切正常,您的服务器将根据与当前日期和时间连接的用户登录字符串创建哈希值。哈希,登录,日期和身份验证时间被添加到服务器上的某种表格中(甚至可能是文本文件)。这个小小的哈希值通过“Set-Cookie”http头发回给您的用户。
每当您的服务器获得任何http请求时,您的服务器都会检查是否还有散列给出的cookie。服务器将cookie与表中的条目进行比较,检查时间是否已过期,服务器请记住此请求是由登录的VIP发出的。
实施上述内容,你很高兴。看看它看起来多么有趣。不要将你称之为'sessionID'的方式与用户ip配对。以某种方式跟踪它是好的,但不要拒绝从不同的ip传递有效sessionid的用户。拥有移动设备的人往往会改变他们的ip。
我认为没有更简单的方法 这可能很有趣。