|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2003/7/4 23:33:28 |
标题: |
勤工助学管理系统[系版] v1.0的一个安全漏洞!!! |
浏览:2511 |
|
加入我的收藏 |
楼主: |
勤工助学管理系统[系版] v1.0的一个安全漏洞:不知道大家注意到了没有,进 入系统时出现一个登录密码验证框,如果不知道密码的话似乎进不去。但是, 如果你直接点密码对话框右上角的关闭符号的话,看看会发生什么情况:你会 发现不用输任何密码就可以轻而易举地进入系统了,原因是程序作者忘了给该 这个窗体的右上角关闭事件编写代码,但用什么方法或语句判断用户是直接关接 窗体的关闭符号呢来关闭窗体的?
(用判断窗体的OnCloseQuery事件好象不行,因为在密码窗体发生Close事 件时,首先会激活该窗体的OnCloseQuery 事件。)
本人手头没有这方面的资料。有那位高手知道,请指点一、二。
----------------------------------------------
- |
作者: |
|
2003/7/5 8:52:36 |
1楼: |
用ONCLOSEQUERY事件能控制窗口的关闭,如下: CANCLOSE:=FALSE; 加入此代码后窗口就不能关闭了。
----------------------------------------------
|
作者: |
|
2003/7/5 22:19:07 |
2楼: |
我不干脆将窗体的BiSystemMenu属性设为false.不更好吗?
----------------------------------------------
-
|
作者: |
zwcih (zwcih) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2003/7/5 22:48:11 |
3楼: |
这样做,在登陆窗体的onclose中加入以下代码 if form_main.login=false then 结束程序
----------------------------------------------
-
|
作者: |
|
2003/7/6 13:46:17 |
4楼: |
2楼的说法还是不够好,因为把bisystemmenu属性设为false的话,用alt+f4键还是可以把它关闭,所以没有解决根本的问题!
----------------------------------------------
-
|
作者: |
|
2003/7/6 14:07:49 |
5楼: |
这样行不行,在登陆窗体的onclose事件中加如下的代码: if edit1.text<>mypass then frm_main.close;
----------------------------------------------
-
|
作者: |
|
2003/7/6 15:43:58 |
6楼: |
三楼的说法不行吧,这样就实现不了主窗体的正常登录了,我们要的就是在主窗体登录的时候同时关闭密码对话框 四楼说的可以,我们可以把ALT+F4屏蔽掉 五楼的说法也不可能不行
----------------------------------------------
-
|
作者: |
|
2003/7/6 15:50:44 |
7楼: |
if edit1.text<>mypass then frm_main.close;
如果 edit1.text=mypass 那不就关不了登录框吗?
----------------------------------------------
-
|
作者: |
|
2003/7/6 16:05:54 |
8楼: |
是的,要是=mypass的话就关不了了! 干脆就在登陆框的onclose事件当中结束主窗体好了! procedure Tfrm_login.FormClose(Sender: TObject; var Action: TCloseAction); begin frm_main.Close ; end;
----------------------------------------------
-
|
作者: |
|
2003/7/7 12:41:37 |
9楼: |
八楼的兄弟也行不通吧,如果密码正确,你想想是不是关闭登录框的同时也关闭了主窗体? 我看较好的办法就是:bisystemmenu属性设为false,然后屏蔽ALT+F4键,但屏蔽 ALT+F4键怎么实现?那位大侠知道?
----------------------------------------------
-
|
作者: |
|
2003/7/7 13:05:59 |
10楼: |
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); begin if (ssAlt in shift)and(key=115) then key:=0; end;
----------------------------------------------
-
|
|