如何透过Email的超链结登入系统并直接进入指定的画面

 

我们的系统中可能会需要让某些特定的使用者(通常是高位者)为了操作上的【便利性】,让使用者可以直接点【超链结】就直接的【进入系统】,并到达某特定的【网页(文件)

 

一般的做法可能是将【账号密码存于Cookie】的方式进行,但是这样的方式不是很恰当,其次再给予超链结的时候,也会将要导回哪些画面的信息直接放在超链结中,这样容易让用户知道您的程序会处理哪些字段的信息,造成用户透过尝试更改超链结信息方式浏览到用户不该浏览的数据。

例如:http://www.blueshop.com.tw/doc.asp?docid=1234

有心的黑客看到这样的信息,可能就会尝试着把1234改成1233或者1235来查看,程序上一不小心就会让使用者看到不该看的东西

 

而且将账号密码存于Cookie中,容易让【木马程序】透过【收集Cookie】的方式得知账号密码

 

所以如果要能够比较安全的方式,小喵提供以下这个方式给大家参考

 

1.      超链结中带的QueryString是一组GUID1(公钥)
例如:http://www.blueshop.com.tw/abc.asp?GID=405CACB3-F658-4DD5-82E5-D1DA7DDFDB7E

2.      进入系统后,从数据库中找到此组【GUID1公钥】提供给哪个【使用者】使用、以及哪些【文件超链结数据】

3.      透过2.的【使用者】,在【TA】验证该【使用者】存于Cookie中的【GUID2私钥】以及限定的IP,让只有【限定的IP】并且拥有【GUID2私钥】的人才可以开启,否则将拒绝进入

4.      GUID2私钥给予的方式:用户登入后,检查数据库中是否有设定该【使用者】与【IP】有授权可以拥有【GUID2私钥】→如果有→产生【GUID2私钥】存放于数据库中,并产生Cookie存放【GUID2私钥】


 

 

首先会用的两个数据表:

使用者私钥管理表(TA)

PK

UserId

使用者账号

PK

IP

用户计算机IP

 

GUID2

私钥

 超链结公钥管理表(TB)

PK

GUID1

公钥

PK

UserId

使用者账号

 

URLInfo

超链结信息

 

 

 

 

 

 

 

使用者点选超链结后,首先从取得的【GUID1公钥】透过【TB】取得这份文件是允许哪些【使用者】可以浏览,接着将此【使用者】透过【TA】取得该用户允许在哪台计算机【IP】并且需要拥有哪个【GUID2私钥】才能看。

 

换言之,需要【GUID1(公钥)+允许的计算机IP+GUID2(私钥)】三个条件缺一不可,才能够进入该网页(文件)

 

要实现以上的方式,需要有三个公用程序

1.      正常登入后【产生私钥】

2.      产生Email中超链结时,【产生公钥】

3.      链结回来后【验证3要件】

 

 

这样的设定方式,适用于一个人拥有多个计算机,也适用于各系统自行运用。

 

FAQ

Q1:请问如果用户拥有多台计算机,是否适用
A1:可以适用,因为TA中的主索引为UserId + IP,所以一个用户可以设定多台计算机,各每台计算机各自拥有各自的私钥

Q2:请问如果一个网页(文件)需指定三人可浏览,是否适用
A2:可以适用,因为TB中主索引为GUID1 + UserId,所以一份文件可以指定多人浏览

Q3:请问如果信件被别人拦截,是否可以直接点选超链结就进入系统
A3:不会。信件中的超链结中是公钥,必须加上【GUID2私钥】及【IP】两个条件都符合才能进入

Q4 :请问,如果用户借用别人的计算机登入,会不会在别人计算机中储存【 GUID2 私钥】
A4 :不会,储存私钥必须符合【正常登入】【符合限制 IP 】才会储存,如果会担心,可将储存的动作作成按纽让使用者按下【在这台计算机储存私钥】的按钮后才储存【私钥】

转载于:https://www.cnblogs.com/topcat/archive/2008/06/08/1215887.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值