安全登录防止被盗-ASP.NET防止用户多次登录的方法

一 : ASP.NET防止用户多次登录的方法

常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存在,如果存在就报错,不存在的话就加到Application中(Application是所有Session共有的,整个web应用程序唯一的一个对象):

以下是引用片段:

string strUserId = txtUser.Text;

ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;

if (list == null)

{

list = new ArrayList();

}

for (int i = 0; i < list.Count; i++)

{

if (strUserId == (list[i] as string))

{

//已经登录了,提示错误信息

lblError.Text = "此用户已经登录";

return;

}

}

list.Add(strUserId);

Application.Add("GLOBAL_USER_LIST", list);
 
当然这里使用Cache等保存也可以。

接下来就是要在用户退出的时候将此用户从Application中去除,我们可以在Global.asax的Session_End事件中处理:

以下是引用片段:

void Session_End(object sender, EventArgs e)

{

// 在会话结束时运行的代码。

// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为

// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer

// 或 SQLServer,则不会引发该事件。

string strUserId = Session["SESSION_USER"] as string;

ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;

if (strUserId != null && list != null)

{

list.Remove(strUserId);

Application.Add("GLOBAL_USER_LIST", list);

}

}
 
这些都没有问题,有问题的就是当用户直接点浏览器右上角的关闭按钮时就有问题了。因为直接关闭的话,并不会立即触发Session过期事件,也就是关闭浏览器后再来登录就登不进去了。

这里有两种处理方式:

1、使用Javascript方式

在每一个页面中加入一段javascript代码:

以下是引用片段:

function window.onbeforeunload()

{

if (event.clientX>document.body.clientWidth && event.clientY< 0||event.altKey){

window.open("logout.aspx");

}

}
 
由于onbeforeunload方法在浏览器关闭、刷新、页面调转等情况下都会被执行,所以需要判断是点击了关闭按钮或是按下Alt+F4时才执行真正的关闭操作。

然后在logout.aspx的Page_Load中写和Session_End相同的方法,同时在logout.aspx中加入事件:onload="javascript:window.close()"

但是这样还是有问题,javascript在不同的浏览器中可能有不同的行为,还有就是当通过文件->关闭时没有判断到。

2、使用xmlhttp方法(这种方法测试下来没有问题)

在每个页面中加入如下的javascript(这些javascript也可以写在共通里,每个页面引入就可以了)

以下是引用片段:

var x=0;

function myRefresh()

{

var httpRequest = new ActiveXObject("microsoft.xmlhttp");

httpRequest.open("GET", "test.aspx", false);

httpRequest.send(null);

x++;

if(x< 60) //60次,也就是Session真正的过期时间是30分钟

{

setTimeout("myRefresh()",30*1000); //30秒

}

}

myRefresh();
 
在web.config中设置

以下是引用片段:

< sessionState mode="InProc" timeout="1">< /sessionState>

test.aspx页面就是一个空页面,只不过需要在Page_Load中加入:

以下是引用片段:

Response.Expires = -1;

保证不使用缓存,每次都能调用到这个页面。

原理就是:设置Session的过期时间是一分钟,然后在每个页面上定时每30秒连接一次测试页面,保持Session有效,总共连60次,也就是30分钟。如果30分钟后用户还没有操作,Session就会过期。当然,如果用户直接关闭浏览器,那么一分钟后Session也会过期。这样就可以满足要求了。

二 : fckeditor 防止上传非法文件 增加登录判断

fckeditoreditorfilemanagerconnectorsasp 目录下 两个文件connector.asp upload.asp 里判断是否登录后台

connector.asp
If ( ConfigIsEnabled = False ) Then
SendError 1, "This connector is disabled. Please check the ""editor/filemanager/connectors/asp/config.asp"" file"
End If

在这段代码之前增加身份判断
if 没登录 then
SendError 1, "no login"
end if
upload.asp
if
fckeditor 目录改名 尽量改成fckeditor没有关系的名字

三 : 织梦模板防止别人盗用的安全设置

  织梦模板防止别人盗用的安全设置

  目前在建站这方面,很多站长都选择了使用织梦建站程序,这块程序简单实用,功能也不错,是一款值得推荐的产品!那么这么多人在用,在研究,自己制作的网站模板该怎么防止别人盗用呢?

  当看见自己辛苦设计的页面,制作好的模板被别人盗用,也许还有人会花钱去买一些漂亮的模板别别人盗走,你也只能无可奈何,这种事现在很常见,所以对于出现的这种事情,我们要采取防御措施!

  下面跟大家说下常见的方式,这些方法对技术有限的人来说,可以起到模板防盗作用,对真正的高手来说,大多数网站都是仿不了的,这个大家都需要知道。

  方法一:修改系统默认模板文件夹名字,最简单,也很实用

  步骤:后台->系统->系统基本参数->站点设置->模板默认风格->default

  

 

  把default改成你自己取的名字,然后进FTP,打开templets文件夹,把default名字改成一致,这样别人就不知道你网站模板文件夹名字了。

  方法二:把系统默认的.htm模板文件名改一改。

  大家都知道默认的模板文件的名字,如index.htm(首页),list_article.htm(文章列表页),article_article.htm(文章内容页)等等,直接就给扒下来。

  所以,我们把这些默认的名字改一改,然后去栏目管理处,重新指定一下模板文件就可以增加一下模板的安全了。

  方法三:这个方法是上2个的结合,说起来也简单,

  1、后台不修改默认模板风格default的名字,在templets文件夹里面新建一个文件夹,自己取名。

  2、把用到的模板文件上传到这个文件夹里面;

  这里需要有一个注意,因为后台没有修改默认的模板风格位置,所有,首页、列表、内容等模板文件引用的通用页头(head.html)、页尾(footer.htm),就需要修改一下,不然就不显示了页头页尾,方法如下:

  {dede:include filename=”123456/head.htm”/}

  如果你自己建立的模板文件夹名字是123456,调用代码里就写123456。

  搜索页面、tag页面,都放在默认的default里面,如果放在自己建的文件夹里面,系统不认。

  3、按照方法二的步骤,手动指定各个栏目的模板。

  好多新手在用dedecms建站的时候,没有重视这个,等模板被盗了,才发现,很让人生气,所以,我们要提前做好这些防盗的准备,提高模板的安全性。

  以上几种办法就是针对别人盗用自己模板的一些措施,希望各个站长们多加注意!注意:这些措施只是针对织梦网站的!

四 : dedecms安全配置整理,防止网站被黑必看。

  网上有很多CMS开源程序,发现很多朋友或做医院的都用到DEDECMS,之前我也使用过,不过后来被挂过几次马,就觉得DEDE也不什么好,不过做垃圾站的话,排名效果还是不错的,至少对百度的收录和排名都比较友好。任何一款开源程序都存在或多或少的漏洞,只是没被别人发现而已。自己不能开发这么强大的系统,只能拿现成的来改了。很多所谓的“黑客”都是用工具来扫描入侵,厉害点的人是不屑来黑我们的小网站的,所以我们一般做好安全防护就可以了。以下是我收集整理的内容:

  第一:安装的时候数据库的表前缀,最好改一下,不用dedecms默认的前缀dede_,可以改成ljs_,随便一个名称即可。

  第二:后台登录开启验证码功能,将默认管理员admin删除,改成一个自己专用的,复杂点的账号。

  第三:装好程序后务必删除install目录

  第四:将dedecms后台管理默认目录名dede改掉。

  第五:用不到的功能一概关闭,比如会员、评论等,如果没有必要通通在后台关闭。

  第六:以下一些是可以删除的目录:

  member会员功能

  special专题功能

  company企业模块

  plusguestbook留言板第

  第七:管理地址使用noindex和nofollow标记,防止搜索引擎抓路让一些人通过社工获取管理地址和程序版本号。

  以下是可以删除的文件:

  管理目录下的这些文件是后台文件管理器,属于多余功能,而且最影响安全

  file_manage_control.php file_manage_main.php file_manage_view.php media_add.php media_edit.php media_main.php

  再有:

  不需要SQL命令运行器的将dede/sys_sql_query.php 文件删除。

  不需要tag功能请将根目录下的tag.php删除。不需要顶客请将根目录下的digg.php与diggindex.php删除。

  第八:多关注dedecms官方发布的安全补丁,及时打上补丁。

  第九:下载发布功能(管理目录下soft__xxx_xxx.php),不用的话可以删掉,这个也比较容易上传小马的.

  第十:DedeCms官网出的万能安全防护代码http://bbs.dedecms.com/read.php?tid=15538,我发在文章后面,官网的要会员才能看.

  第十一:最安全的方式:本地发布html,然后上传到空间。不包含任何动态内容,理论上最安全,不过维护相对来说比较麻烦。

  第十二:还是得经常检查自己的网站,被挂黑链是小事,被挂木马或删程序就很惨了,运气不好的话,排名也会跟着掉。所以还得记得时常备份数据.

五 : 3步解决IIS网站安全 防止网站被黑

  前段时间,笔者曾在前文中讲到《网站被注入木马导致网络瘫痪》的方法,但总结下来,感觉不够全面,今天笔者特奉献此文完善网站安全,以防止网站被黑。

  网站被黑一般指网站被注入木马或黑链,注入方法多种多样,有SQL注入、有网站权限注入等等。下文笔者以IIS为例进行讲解该如何预防网站被黑的一些措施。

  1、打开IIS信息服务管理器,在“网站”选项下选择需要设置的网站目录--属性,将网站目录data及upload设置为不可写入,执行权限设置为无(见图2)。

  2、将IIS网站主目录中的"脚本资源访问"、"写入"、"目录浏览"以及记录访问等选项设置勾选去除,右键网站目录---属性进入界面,如下图所示:

  

 

  3、将网站所有目录文件的"执行权限"设置为纯脚本(除data及upload文件外),如下图所示:

  

 

  4、通过以上简单的设置即完成了网站权限的安全设置,我们可以通过http://webscan.360.cn进行检测,如笔者的两个网站结果如下:

  

 

  注:只要是使用IIS建立的网站,以上方法适用于Discuz、PHPwind、DEDECMS及其它大部分开源程序。

  本文原创自,转载需注明出处!

下页更精彩: 1 2 3 4 5 下一页
上一篇: ps抠图羽化边缘-ps抠图后怎么羽化? 下一篇: 爱情说说我的心里话-从大学里的爱情说爱情

优秀文章