惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - Lucy.Net

vs下的checkbox全选 - Lucy.Net - 博客园 http://www.cisco.com/en/US/docs/wireless/access_point/12.3_8_JA/configuration/guide/s38web.html - Lucy.Net 水晶报表打印大小的问题 - Lucy.Net Unix命令大全 求救:vs2003新建asp.net项目时报错:服务器返回的信息无效或不可识别 Windows常用知识 Solarise的一些Q AND A (转贴) 将DataGrid数据写入Excel文件 用.net实现远程获取其他网站页面内容!(核心代码分析) Transact SQL 常用语句以及函数 汇文软件学习笔记 ASP.NET组件设计 Microsoft MSDN Crystalreportviewer 水晶报表 Encode - Lucy.Net 爱情是什么 33招Google技巧玩 网络邻居问题 Dos大全
ASP.NET网页的安全性设计
Lucy.Net · 2007-09-11 · via 博客园 - Lucy.Net
本文介绍了用ASP.NET设计网页时提高网络安全性的几种编程方法,对预防Internet攻击和ASP.NET开发动态网站有一定的指导作用。

    ASP.NET是目前非常流行和重要的开发工具之一。ASP.NET是基于Windows NT 和 Microsoft IIS 上的开放式的Web服务器应用程序开发技术。ASP.NET支持应用程序的实时更新。客户浏览器采用按页浏览的工作方式,而且各个页面文件有相对的独立性,只要用户知道了某个页面文件的URL,即直接浏览该网页,这会给某些Web应用系统带来麻烦和混乱。因此,在设计页面时,必须注意应用系统的安全性,这是网站稳定、安全、高效运行的基础。这就要求在用ASP.NET编程时应当采用适当的安全措施以保证Web网站的安全。下面介绍在ASP.NET编程时的几项安全措施。

1 设计用户登录验证

     很多ASP.NET应用程序,对页面的访问是与客户的身份息息相关的。有时设计用户登录是应用程序本身的需要,比如,对于网上购物系统来说,如客户没有输入自己的用户名就购物,那么公司就不知把货物发往何处。从安全角度来说,在设计网站时,常常需要对网站应用程序做分级处理:拒绝非法用户的登录,限定一般用户只能浏览内容,注册用户可以修改网站的部分数据,而系统管理员则可以修改网站的所有数据。

设计用户登录验证是最基本的安全措施。通常合法的用户名和口令存储在服务器端的数据库表中,当浏览器访问系统登录页面时,要求用户输入用户名和口令,然后调用验证页面,将用户输入的用户名和口令在表中查找,若找到表明是合法用户,允许访问下一页,否则认为是非法用户,拒绝访问。同时系统管理员通过对数据库表的访问来实现对用户的管理,如用户的添加、权限的变更及口令的更改等。

2 使用ServerVariables数据集合

     ServerVariables集合保存了随HTTP请求一起传送的HTTP头的信息,可以通过它获取有关浏览器的信息。语法为:Request.ServerVariables(“服务器环境变量”) ServerVariables集合中包含的环境变量很多,如、PATH_INFO、ALL_HTTP、REMOTE_ADDR、REMOTE_HOST、HTTP_REFERER等等。使用Request.ServerVariables,我们可以完成很多安全性方面的功能。这里仅举2例:

(1) 限定访问用户的IP地址

     Request.ServerVariables(“REMOTE_HOST”)获取用户的IP地址。通过判断用户IP地址。利用这个特性,可以允许或拒绝某些用户访问页面。只需在Page_Load事件中添加下面代码:

‘如果用户来自非指定地址,,则拒绝其访问本页

If Request.ServerVariables(“REMOTE_HOST”)<>“172.16.6.30”then

Response.Redirect("End.aspx")

End IF

(2) 指定跳转页面的路径

     在Web网站中为了防止盗链或直接跳过身份验证页面访问指定页。可以利用ASP.NET的Request_ServerVariables(“HTTP_REFERER”)来限定对页面的跳转访问,即使是从收藏夹链接、单击“主页”或自定义的地址都无法访问指定页面。HTTP_REFERER指的是当前网页的“父页”,即当前网页是由HTTP_REFERER所指定的IP地址跳转过来的。

为说明HTTP_REFERER环境变量的应用,下面举一个简单的例子:所有ASP.NET页面文件放在同一个虚拟目录下,如:http://172.16.6.30/Test。

首先创建一个登录页login.aspx作为注册的入口,注册成功则可以进入目录下的其它文件。点击登录按钮执行如下代码:

′判断帐号和密码是否正确

if   Name.Text=“system” and Pass=“12345” then

Response.redirect(“home.aspx”)

End If

最后在位于该虚拟目录http://172.16.6.30/Test下的所有页面Page_Load事件中添加如下代码:

Dim Str as String

Str= Request.ServerVariables("HTTP_REFERER")

If InStr(1,Str,"http://172.16.6.30/Test/login.aspx",1) = 0 Then

Response.Redirect("login.aspx")

End If

     需要注意的是,采用这种方法,当前目录下的所页面的Page_Load事件中都要包含以上代码,否则不包含此代码的文件将会在直接输入链接地址或不需输入密码就可直接进入。

3使用Session对象

     在ASP.NET中Session对象由System.Web.SessionState类实现,属于System.Web命名空间。利用Session对象可以方便记录客户的信息。从而可以防止用户非法登录指定的Web页面。

通常在登录页面用Session保存用户的帐号和密码,当访问者试图导航到另一个页面时可通过判断Session变量的值来确定进行的操作。例:在登录页面中保存Session(“ID”)=“Admin”,在其它页面中的Page_Load事件中进行如下判断

‘通过判断Session(“ID”)变量的值来确定指向的页面

if Session(“ID”)=“Admin” then

Response.Redirect("Admin.aspx")

Else

Response.Redirect("user.aspx")

End IF

     这样可以有效的防止非法用户访问指定的Web页。

以上分析了在ASP.NET设计动态网页时,实现WEB站点安全的几种方法,对用ASP.NET开发动态网站有一定的指导作用。其实,对于Web站点的安全性,还应该对Web服务器进行设置和管理,如设置用户帐号、密码、权限,设置IP地址限制等,以限制对系统的非法入侵,保证站点的安全。