??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品无码久久久蜜芽 ,亚洲人成77777在线观看网,亚洲人成色7777在线观看http://www.tkk7.com/jiabao/category/31721.html會只會i垂青有准備的hQ運氣不是每個h都有?zh-cnFri, 30 May 2008 01:25:27 GMTFri, 30 May 2008 01:25:27 GMT60WEB交互界面易用性设计和验收的指导性原?/title><link>http://www.tkk7.com/jiabao/archive/2008/05/29/203948.html</link><dc:creator>金家?/dc:creator><author>金家?/author><pubDate>Thu, 29 May 2008 14:35:00 GMT</pubDate><guid>http://www.tkk7.com/jiabao/archive/2008/05/29/203948.html</guid><wfw:comment>http://www.tkk7.com/jiabao/comments/203948.html</wfw:comment><comments>http://www.tkk7.com/jiabao/archive/2008/05/29/203948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jiabao/comments/commentRss/203948.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jiabao/services/trackbacks/203948.html</trackback:ping><description><![CDATA[ <p>随着企业intranet和国际internet的迅速发展,来多的工作流E,商务交易Q教肌Ӏ培训、会议和讲Q以及个人消费娱乐都被{Ud所谓的万维|(world wide webQ以下简UwebQ上来了。与此相对应的是交互操作的复杂性越来越高?/p> <p>随着browser rver模式的日渐流行,很多操作都是在浏览器环境下的|页上完成的Qƈ不是只有失效的链接和意外的出错才会操作者感到烦|即便是一ơ完整的成功操作q程Q也可能因ؓ操作的繁复性过高或者用上的不方便而给操作者带来不愉快的体验?/p> <p>本文试图阐述web交互面设计的一些指导性原则,q些原则有利于避免发生不愉快的操作体验。这些原则是用户友好性的Q是在完成同一U操作要求下Q用户最感到L、简单、舒适的web交互界面设计原则。我们假定我们讨论的web面都是功能正常的,W合学观点的。需要说明我们讨论的原则可能会和设计上的学观点以及既有的功能设计有所冲突。如果发生这U情况,Z“实用的是的”观点,我们会徏议?zhn)酌情攑ּ原先的美学观点与功能设计?/p> <p>一、输入控件的自动聚焦和可用键盘切换输入焦?</p> <p>    使用javascript实现面加蝲完成后立卌动聚?focus)到第一个输入控件。可用tab键(ie~省实现Q或方向键切换聚焦到下一个输入控件?</p> <p>    输入控g指web面表单(<form> )中显式的Q需要用戯行修攏V编辑操作的表单元素。对于这些控Ӟ如果没有自动聚焦操作Q不可避免的出现一ơ用户鼠标定位操作(如果用户此前处于键盘输入操作状态或鼠标定位后需要进行键盘输入操作,实际上是键盘鼠标切换操作Q。如果鼠标定位后需要进行键盘输入操作,如果不能键盘切换输入焦点Q那么不可避免的在切换输入焦Ҏ(gu)需要反复的键盘鼠标切换操作Q这是很J琐的?/p> <p>    如果实现了页面加载完成即自动聚焦到第一个输入控Ӟq且可以键盘切换输入焦点标定位操作,那么对于用户来说整个面的输入操作可能都不需要鼠标操作,或次数较?yu),q是一U便利。毕竟频J的键盘鼠标切换操作是比较篏人的?/p> <p>    对于有输入栏的对话框或网,在不q预的情况下应当前控制焦点定位在待输入的输入栏上Q如果输入栏在一般情况下不需要更改其中的内容Q则应直接将焦点定在“确定”按钮上Q在几个输入栏之间应支持tabQshift+tab切换操作Q“确定”和“取消”应该是切换操作的终点,与具体所在位|无兟?/p> <p>二、可用enterQ或ctrlQenterQ键提交Q确保和点击提交按钮的效果是相同?</p> <p>不要在提交按钮上加入onclick=”…”这Ljavascript代码?</p> <p>    用enter键提交页面是原则1的自然g伸,而且q也是浏览器所~省支持的。只所以单独列出来是因为实际上有些设计者设计的面不能辑ֈq种效果Q结果导致用enter键提交和点击“确定”按钮提交带来的效果不一栗大部分情况下是设计者在“确定”按钮上加入了onclik=”…”这L代码Q通过点击“确定”按钮后Q会执行一Djavascript代码Q比如对某些hiddencd的input元素讑ր{而用enter键提交时׃会执行这D代码?/p> <p>    正确的做法是把这D代码移到表单标{?lt;form>中,以onsubmit=”…”属性引入?/p> <p>    对于<textarea>表单元素Q它会消耗enter键,因此会得enter键提交失效。可以引入javascript代码捕捉ctrl+enter复合键,一旦捕捉到x行表单的submit()Ҏ(gu)。对于需要频J提交的场合Q比如bbs上,q种代码是很有必要的?/p> <p>三、鼠标动作提C和回应 </p> <p>    对用L鼠标定位操作Q当Ud到可响应的位|上Ӟ应给予视觉或听觉的提C?</p> <p>    动作回应的最单Ş式就是鼠标icon变成手状。浏览器只对hhref属性的html标签会自动进行这U变换icon的行为。对于没有href属性(或没有设|href属性)的标{,可以通过javascript讄style属性的cursor为hand?/p> <p>    目标区域发生变化是更Z动的响应形式。当鼠标指针Ud目标区域Q此时指针图形改变或文字颜色发生改变均能较大的减ȝh索定位目标区域的注意力负担。在按钮上增ȝ观的囑ŞQ尽可能的增大按钮面U;按钮间保持适当的距,太近增加了用户区别它们之间界限以防误操作的负担,太远增加了用h索定位按钮的负担?/p> <p>四、尽可能早的在客L完成输入数据合法性验?</p> <p>    输入数据的合法性检验应该在客户端用javascriptq行验证。除非验证只能在服务器端完成Q否则验证工作应在最早能完成的情况下q行?</p> <p>    在客L完成数据合法性验证,可以避免一ơ服务器h和回复通讯Q这U通讯是需要用L待的Q如果用L待很长时间后从服务器q回的结果提C出现的错误是在输入时即可发现的Q那么这U设计就是不友好的。诸如密码长度限Ӟ用户名允许字W限制等{,昄应该在客L提交前就应该q行验证?/p> <p>五、根据应用场景决定在表单面和提交后q回面间是否用中间过渡页?</p> <p>    Ҏ(gu)应用场景Q决定是否显C接收表单页面(表单面和提交后q回面间的中间q渡面Q,以及使用何种方式昄接收表单面?</p> <p>表单面和接收表单页面是大部分web交互操作赖以实现的配合模式。关于表单页面和接收表单面的相互关pȝ设计Q要做如下几个方面的考虑?/p> <p>1Q对于需要频J操作的场合Q从操作便利和快h出发,可能的减少服务器和客户端交互次敎ͼ应该避免使用中间q渡面。提交完毕直接返回原来的表单面或默认页面。在q种情况下要考虑到数据安全和可恢复性?/p> <p>如果因ؓ用户输入的数据不合格Q需要重新输入,那么Q去除中间页面,把错误信息直接显C在原表单页面上的设计方式,是最z的处理方式。用户只需要根据错误提C行更正即可。当然这样做E微增加了编E负担。在表单接收面上需要包含原表单面的内容,而且输入数据w必须用服务器端代码或客户端javascript讄成用戯入的倹{ؓ了开发快P可以q样做:表单面和接收表单页面用同一个服务器端脚本页面实现。这个页面按如下程完成原来两个面的工作:</p> <p>面脚本初始?/p> <p>?/p> <p>查“提交”变量是否设|?/p> <p>┠已讄Q做数据验证</p> <p>?┠验证通过Q?gt;业务逻辑处理Q?gt;使用包含面方式或重定向方式q回到特定页?</p> <p>?┗验证不通过Q?gt;保存用户输入的数据->退单提交处理到表单面程?/p> <p>┗未讄Q做表单面程Q如有来自提交流E中产生的用戯入数据,则显C出?/p> <p>其中Q用包含页面方式返回到特定面可以避免一ơ客L重定向过E,比客L重定向过E还要快捷和E_一些。但是有些情况下因ؓ代码变量冲突或其他原因,使用包含面方式可能q不方便Q这时候可以用服务器端重定向技术,在asp里是server.transferҎ(gu)Q在java servlet里是requestdispatcher.forward()Ҏ(gu)。不要用response.redirect或者httpservletresponse.sendredirect()q种客户端http重定向方法。不使用中间q渡面也就意味着用户不能后退览原先已经填好的表单页面,因ؓ使用的是同一个url。所以在验证不通过情况下保存用戯入的数据是必不可少的?</p> <p>不用中间过渡页面带来的另一个问题就是用包含页面方式或服务器端重定向方式返回会使得url和页面内容不能一一对应。对于用户可能会直接用这个urlQ会收藏q个urlQ访问返回页面的情况Q他会发现实际上到达的是表单面Q不是他惌的那个返回结果页面。所以,去除中间q渡面Q确实会带来url和内容含混不清的情况Q因而不适合需要url和页面内容一一对应的场合?</p> <p>2Q从技术角度考虑Q用中间过渡页面能保证url和页面内容一一对应Q简化页面开发工作?</p> <p>Z保证面内容L和固定的url联系hQ必M用客L重定向: </p> <p>提交   业务逻辑处理 Q中间过渡页面) </p> <p>表单面――――->接收表单面――――――――?gt;昄处理l果――?gt;客户端重定向到特定页?</p> <p>客户端重定向分几U情况:</p> <p>1Q用http header重定向,location: <a >http://www.netall.com.cn</a>Q这U定向是最快的Q在H口一片空白的情况下就q速访问(getQ另一个页面。这U方式实际上不能昄处理l果Q只能说是向W一U快速重定向方式的一U折衷处理;</p> <p>2Qhtml标签hQ?lt;meta http-equiv=”refresh?content=?;url=http://www.netall.com.cn?gt;Q这U定向比较友好,在这个页面加载完毕后讉K另一个页面。很多设计者把q个作ؓ一个技巧用,在蝲入一个大面前放|一个缓冲页面以避免用户乏味的等待;</p> <p>3Qjavascript重定向。由于是用代码控刉定向Q可以做的更灉|。比如根据用户习惯,控制操作完毕后的转向程?/p> <p>4Q被动式的重定向。在面上放|按钮或链接Q由用户手动军_q回到特定页面。这U情况适合于处理结果的昄面包含相当多的信息Q需要用户仔l浏览,而决定下一步的操作?</p> <p>   在用中间过渡页面的情况下,不能再用页面过期失效了。否则一旦出现错误,需要用户重新输入表单数据,用户׃能用后退按钮恢复此前填写的表单数据了。除非设计者有意禁止这U恢复?</p> <p>六、防止表单重复提交处?</p> <p>    Ҏ(gu)交按钮点d做变灰处理避免在|络响应较慢情况下用户重复提交同一个表单。用页面过期失效避免用户后退览重复提交表单?</p> <p>    有些复杂的应用会D需要较长时间的{待才会q回处理l果。而在较慢的网l环境中Q这U情冉|是频J发生。焦急等待的用户往往会重复点L交按钮。这U情冉|设计者所不希望看到的?/p> <p>    使用javascript在点L交按钮后使按钮失效变灰是一个最直接的办法(Ҏ(gu)原则2q段代码应该攑֜<form>标签里onsubmit=”…”做Q。此外,在表单页面上Q用服务器端脚本讄http header的expires为立卌期可以保证用h办法使用后退览恢复表单面。注意这样做的代价可能是用户辛辛苦苦填写很长的内容,l果一旦操作失误就没法恢复。所以应该避免在包含<textarea>表单元素的页面上使用面q期失效?/p> <p>    应该_更严格的Ҏ(gu)是,服务器端脚本应该具备抵抗重复提交的能力。例如,个表单分配一个唯一id或一个用一ơ即失效的验证码。此外,q个表单处理q应h事务性质Q如果表单不被接受,所做的改变q是能恢复的。在金融应用场合Q重复提交同一W交易是肯定不被允许的。能在重复提交中获利的一Ҏ(gu)L会想办法l过览器的限制Q所以不能依赖于客户端的技术?/p> <p>七、页面链接是打开新窗口、用原H口q是弹出H口的原?</p> <p>    一般而言Q首上链接可以使用target=”_blank”属性打开新窗口,而其他页面上的链接都应用原H口或弹出窗口。如果链接页面内容相对原面来说不重要,是附属性质的,可以使用弹出H口方式?</p> <p>    一般情况下应该使用原窗口,把是否保留原H口内容的权利留l用戗除非设计者相信原面是如此重要,在用户发出点L令后q有使用上的价|以至于不能被随便更新或覆盖。一般来_只有首页才会处于q样一个地位,用户在首上打开一个链接后Q一般还会在q个首页上去打开另一个链接。比如首包含极多链接的门户|站Q或者搜索引擎的搜烦l果面。google.com以前的搜索结果页面上的链接是使用原窗口的Q后来他们意识到用户会反复用这个页面,而改成打开新窗口了。一般的|站如果首页链接不多Q就不必使用新窗口,q是用户友好的设计原则?/p> <p>    上述情Ş的一个极端情况就是新面内容比v原页面内容的重要性差很多Q以至于都未必需要打开一个新面。这时候用弹出窗口比较合适。用javascript弹出H口有好几种Q一个是window.open()函数。这里有个技巧。应该用window.open()先打开一个空白窗口,再用location.replace()用目标页面替换。这样做可以避免在打开新页面的q程中导致原面失去响应。window.open()打开一个新的浏览器H口q程Q因此资源消耗比较大。另一个是由微软dynamichtml规范中扩充的Ҏ(gu)createpopup()。createpopup()可以创徏无边框的弹出H口Q消耗系l资源较?yu)。还有一个就是用面中隐藏的?lt;div>来模拟一个弹出页面。后两种可以使用javascript代码填充弹出H口内容。如果需要下载网作为其内容的话Q需要微软dynamichtml规范中的<download>标签?/p> <p>八、尽可能的排列可选项Q尽可能的安排操作步骤 </p> <p>    Ҏ(gu)用户操作习惯安排可能少的操作菜单选项Q同时要保证可能少的操作步骤?在不降低功能多样性的前提下减菜单项和操作步骤是用户友好的设计。要做到q一点很不容易。要从用户出发考虑他们最频繁的操作是什么。正常情况下一个用户需要的操作d以归cMؓ5个以下的U类Q如果出现更多的U类Q那一定是没有针对用户兴趣d分主ơ。一个用户同时有5个以上的强烈兴趣中心是难以想像的Q走马观׃的随意点L览的用户Q是不大可能在某个种cMq行深入的交互操作的。在q?个种cMQ每个种c都可能有若q个可操作的二U类。如果这些二U操作项是不可见的,那么意味着要做两次选择才能q入可操作页面。这p背了“尽可能的安排操作步骤”这一原则。如果用javascript制作二菜单Q避免请求服务器Q会好一些。如果二U菜单项d不超q?0个左叻I不妨二U菜单直接显C出来,比如攑֜左列一字向下排开Q这样只需要一ơ选择到可操作,更加明了方便?/p> <p>?ji)、操作逻辑无漏z,保证数据是操作安全的 </p> <p>    多个面间的操作和同个页面上的多个操作间的逻辑关系在设计上是安全和严}的。保证不会出C被允许的用户操作l合Q至不会因为用L不适当的操作导致出错?</p> <p>    q最典型的表现则是在面上广泛采用的所谓联动下拉框设计。一个下拉框中允许的选项受另一个下拉框中的选择而变。另外一个例子是Ҏ(gu)选择使表单元素有效或者失效。如果在多个面间也要维持某U合法性逻辑Q那么就需要服务器端脚本的参与。这样会使表单设计跟操作有关Q应该说q不是一个好的设计。可以通过变更操作步骤序、组合方式来可能避免这U情况出现?/p> <p>    操作逻辑的设计既要保证用户Q意的输入不会D错误Q也要保证是用户输入的数据能购被安全处理。在session控制下的表单中输入大q文字可能会D时出错Q这时候往往q伴随重定向q程Q导致用L长篇输入荡然无存。用javascript提醒用户已超Ӟ请保存输入后重新提交Q是一个好办法。某些表单元素如<input type=”text?gt;接受esc键清除数据,q且无法撤销Q这也是很危险的。在中文输入法中常常使用esc键清楚输入的码位Q一旦不心多按一下esc׃使得输入数据消失。因此有必要用javascript用<input>?lt;textarea>的esc键处理过E。(Edit From:Internet,By AaronQ?br /></p> <img src ="http://www.tkk7.com/jiabao/aggbug/203948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jiabao/" target="_blank">金家?/a> 2008-05-29 22:35 <a href="http://www.tkk7.com/jiabao/archive/2008/05/29/203948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP安全几个问?/title><link>http://www.tkk7.com/jiabao/archive/2008/05/23/202469.html</link><dc:creator>金家?/dc:creator><author>金家?/author><pubDate>Fri, 23 May 2008 10:20:00 GMT</pubDate><guid>http://www.tkk7.com/jiabao/archive/2008/05/23/202469.html</guid><wfw:comment>http://www.tkk7.com/jiabao/comments/202469.html</wfw:comment><comments>http://www.tkk7.com/jiabao/archive/2008/05/23/202469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/jiabao/comments/commentRss/202469.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/jiabao/services/trackbacks/202469.html</trackback:ping><description><![CDATA[ <div>记得q是dQ刚到据说是高手云集的威威公怸班的时候,一个新到的同事l我讲他׃半天的时间写Qƈ做了很长旉的实践,写了个关于攻?jsp面的程序。下面我把具体的实现q程和大家分享一下。测试^台是TomcatQ当Ӟ版本有点低,他的目的只是惌实一下他的某些想法。首先,他在Tomcat的WEB目录下徏立了一个Hello.jsp文gQ内Ҏ(gu)Q? <p></p><p><%out.print(hello);%></p><p>通过IE的正常请求地址为:<a class="contentlink" href="http://localhost:8080/examples/jsp/hello.jsp" target="_blank"><font color="#4455aa">http://localhost:8080/examples/jsp/hello.jsp</font></a>Q显C结果ؓQhello。然后开始具体的d试。测试时Q发出的h地址为:<a class="contentlink" href="http://localhost:8080/examples/jsp/////////hello.jsp" target="_blank"><font color="#4455aa">http://localhost:8080/examples/jsp/////////hello.jsp</font></a> Q浏览器上显C编译错误,错误的原因是500 java.lang.NullPointerException。这个应该是比较常见的错误了。现在,恢复正常的请?a class="contentlink" href="http://localhost:8080/examples/jsp/hello.jsp" target="_blank"><font color="#4455aa">http://localhost:8080/examples/jsp/hello.jsp</font></a>Q问题就出现了,卛_错,而且所报的错误和刚才造成它错误的h是一LQ?00 java.lang.NullPointerException”。难道是~存在浏览器里了吗?换台机器讉K<a class="contentlink" target="_blank"><font color="#4455aa">http://192.168.10.188/examples/jsp/hello.jsp</font></a>。问题依然如故,哎!可怜的Hello.jsp呀!</p><p>  虽然q个问题有些弱智Q不q,他的目的也达CQ即扑և?jsp”流E中存在的一些问题。所以,JSPE序同ASP一Pq是存在着很多安全上的问题的。因此,对于一心研I论坛或者其他安全信息的朋友来说Q要惛_现JSP的BUGQ了解一些JSP的工作原理是十分重要的?/p><p>  需要指出的是,虽然是一门网l编E语aQJSP和PHP、ASP的工作机制还存在很大的区别,首次调用JSP文gӞJSP面在执行时是编译式Q而不是解释式的。首ơ调用JSP文g其实是执行一个编译ؓServlet的过E。当览器向服务器请求这一个JSP文g的时候,服务器将查自上次~译后JSP文g是否有改变,如果没有改变Q就直接执行ServletQ而不用再重新~译Q这P工作效率得到了明显提高。这也是目前JSP论坛开始逐渐风靡的一个重要原因?/p><p>  提C:Servlet是用Java~写的Server端程序,它与协议和^台无养IServletq行于JavaQenabled WEB Server中;Java Servlet可以动态地扩展Server的能力,q用请求-响应模式提供WEB服务Q最早支持Servlet技术的是JavaSoft的Java WEB ServerQServlet的主要功能在于交互式地浏览和修改数据Q生成动态WEB内容?/p><p>  说到q里Q我们自然就会关心一些JSP的安全问题。一般来_常见的JSP安全问题有源代码暴露Q包括程序源代码以明文的方式q回l访问者,如添加特D后~引vjsp源代码暴Ԍ插入Ҏ(gu)字符串引起Jsp源代码暴Ԍ路径权限引v的文件Jsp源代码暴Ԍ文g不存在引Ll对路径暴露问题{)、远E程序执行类、数据库如SQL Server、Oracle 、DB2{的漏洞Q操作系l漏z等。不q,ZH出Jsp的安全问题,本文结合目前的一些比较流行的Jsp论坛分类阐述和提决的。ؓ了讲解方便,本文q采用一些公开了原代码的论坛实例代码,至于安装软g版本、操作系l等Q可以查看安装提C?/p><p>  论坛用户理~陷</p><p>  Z加强实战效果Q我们可以到<a class="contentlink" target="_blank"><font color="#000050">http://down.chinaz.com/S/5819.asp</font></a>q个地址下蝲一个典型的论坛代码Q根据提C,数据源名UCؓyyForumQ用户名为xyworkerQ密码:999。到baidu、Google{网站搜索一下,我们可以看到Q安装这个代码的论坛不少。仔l分析后Q可以发玎ͼ用户理的页面是user_manager.jsp文g。首先,我们看看q个pȝ是如何加强它的代码安全性的。其中,在代码的开始部分有一个if限制条gQ代码的W三行到W十行具体如下:</p><p><%<br />if ((session.getValue(UserName)==null)||(session.getValue(UserClass)==null)||(!session.getValue(UserClass).equals(pȝ理?))</p><p>%></p><p>  其中QSession.getValue表示索出Session的|sendRedirect()执行后,地址栏链接会改变Q相当于客户端又重新发了一个gethQ要服务器传输另一个文件过来?/p><p>  下面Q我们再来看看修改用户信息的文gmodifyuser_manager.jsp。典型代码如下:</p><p><%@page contentType=text/html; charset=gb2312 language=java import=java.sql.*,java.util.*  %><br /><jsp:useBean id=yy scope=page class=yy.jdbc/><br /><%!String User_Name,User_Password,sql, User_Sign;%><br /><%<br />User_Name=request.getParameter(name);</p><p>//out.println(User_Name);<br />User_Password=request.getParameter(password);<br />User_Password=yy.ex_chinese(User_Password);<br />…?br />User_Sign=request.getParameter(sign);<br />User_Sign=yy.ex_chinese(User_Sign);</p><p>Connection con=yy.getConn();<br />Statement  stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);<br />sql=update 用户表 set 用户密码='+User_Password+',用户性别='+User_Sex+',用户邮箱='+User_Email+',居住地址='+User_Address+',手机L='+User_Mobile+',Oicq='+User_Oicq+',出生日期='+User_Birthay+',用户{='+User_Class+',{֐='+User_Sign+' where 用户?'+User_Name+';<br />//out.println(sql);<br />stmt.executeUpdate(sql);<br />out.println(<font size=2 color=blue>正在处理你的用户信息Q请E后...</font><meta http-equiv='refresh' content='2;url=user_manager.jsp'>);<br />%><br /><jsp:include page=inc/online.jsp flush=true/></p><p>  看看q个文gQ我们就好像看到了一个简单的教学文g。现在,假设理员提交如下地址Q即<a class="contentlink" target="_blank"><font color="#4455aa">http://www.51dz.net/bbs/modifyuser_manager.jsp?modifyid=51</font></a>Q需要查看、修改ID?1的用L资料Q管理员默认的用户ID?1Q。问题就出来了。同LQ我们可以通过搜烦引擎得到如下地址<br /></p><div>很明显,q个用户理文g~Z认证Q即使是普通的用户Q甚臛_括我们这些搭不上边的“游客”,也可以直接提交上q请求,从而将其资料一览无余,更让人动心的是,密码也是明文存储的?br />  <br />  <a class="contentlink" target="_blank"><font color="#000050">http://www.51dz.net/bbs/modifyuser_manager.jsp</font></a>同样是大开山门Q直到恶意用h数据更新的操作执行完毕,重定向到user_manager.jsp的时候,理员才会看见那个显C错误的面Q但q个时候ؓ时已晚,更谈不上“亡补牢”了。类似的错误存在于很多JSP的站点上Q面对这L论坛Q我们能够放心的说“安全”吗Q解决之道有很多Q不q,最基本的要求是为每个需要加w䆾认证的地方加上n份认证,如果借用别h的代码,一定要Ҏ(gu)及到用户理、密码认证等重要文g修改一下,照搬虽然省事Q但代码毫无安全性可a? <p></p><p>  再就是SQL注入的问题。比如,q个典型的问题:“昨天公司的数据库被人SQL注入Q?万条记录都被update了,同事写了个JSPE序来把他改回来Q可是这JSP没有一点信息返回,看不到进度,在运行些什么都不知道。”不q,q和JSPE序没有什么必然的联系Q根据国情,国内的网站用ASP+Access或SQLServer的占70%以上QPHP+MySQL?0%Q其它的不10%。因此,ASP的SQL注入比较常见也不ؓ怪。不q,SQL注入漏洞可谓是“千里之堤,溃于蚁穴”,q种漏洞在网上极为普遍,即是JSPE序也不能幸免。归根结底,通常是由于程序员Ҏ(gu)入不了解Q或者程序过滤不严格Q或者某个参数忘记检查导致。看看这个教材式的JSPE序可以窥见一般:</p><p>Statement stmt = conn.createStatement(); <br />String checkUser = select * from login where username = ' + userName + ' and userpassword = ' + userPassword + '; <br />ResultSet rs = stmt.executeQuery(checkUser); <br />if(rs.next()) <br /> response.sendRedirect(SuccessLogin.jsp); <br />else <br /> response.sendRedirect(FailureLogin.jsp);</p><p>  针对q种情况Q如果数据库里存在一个名叫“Tom”的用户Q那么在不知道密码的情况下至有下面几种Ҏ(gu)可以dQ?br />用户名:Tom            密码Q? or 'a'='a<br />用户名:Tom            密码Q? or 1=1/*<br />用户名:Tom' or 1=1/*     密码Q(LQ?/p></div></div> <img src ="http://www.tkk7.com/jiabao/aggbug/202469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/jiabao/" target="_blank">金家?/a> 2008-05-23 18:20 <a href="http://www.tkk7.com/jiabao/archive/2008/05/23/202469.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://clever-ad.com" target="_blank">avëƬһ</a>| <a href="http://7755ga.com" target="_blank">һƵ</a>| <a href="http://www999973.com" target="_blank">þþƷaһվ </a>| <a href="http://alankell.com" target="_blank">99ѹۿ</a>| <a href="http://9522952.com" target="_blank">þþþù˾Ʒҹ</a>| <a href="http://ivy-fund.com" target="_blank">лиëƬѿ</a>| <a href="http://ztsf6688.com" target="_blank">һ߹ۿ</a>| <a href="http://yy9977.com" target="_blank">޴߶רһ</a>| <a href="http://cqyouyongpx.com" target="_blank">椸ѹۿƵ</a>| <a href="http://cc88899.com" target="_blank">ձVAҹߵӰ</a>| <a href="http://avav2021.com" target="_blank">պƷƵ</a>| <a href="http://maiertejx.com" target="_blank">޳aëƬ</a>| <a href="http://50077995.com" target="_blank">պƵ</a>| <a href="http://whspmd.com" target="_blank">ۺһ</a>| <a href="http://djllgs.com" target="_blank">ˬˬһ</a>| <a href="http://shaonvfushi.com" target="_blank">Ůվ91ɫ</a>| <a href="http://jpvv8.com" target="_blank">ģ߹ۿ</a>| <a href="http://xabcjzx.com" target="_blank"></a>| <a href="http://gtja1668.com" target="_blank">޹ƷAV</a>| <a href="http://usagaa.com" target="_blank">רþ</a>| <a href="http://139699.com" target="_blank">þþþþྫƷֱ</a>| <a href="http://clever-ad.com" target="_blank">޾ƷƷ벻</a>| <a href="http://kutuwo.com" target="_blank">ʮ߹ۿӰ</a>| <a href="http://ksp33.com" target="_blank">þþþAVۿ</a>| <a href="http://k4h3.com" target="_blank">99ŮŮѾƷƵ߹ۿ</a>| <a href="http://www-79983.com" target="_blank">ɫͼѧ</a>| <a href="http://cnlawedu.com" target="_blank">޲avĻ</a>| <a href="http://se988.com" target="_blank">avƬ߹ۿ </a>| <a href="http://zbr555sina.com" target="_blank">޾ƷԴ26u</a>| <a href="http://cnepu.com" target="_blank">99ƷһƵ</a>| <a href="http://zdxxxx.com" target="_blank">2016</a>| <a href="http://0939666.com" target="_blank">޾ƷƵ߿</a>| <a href="http://chch12.com" target="_blank">պƷƵѹۿ</a>| <a href="http://www621f.com" target="_blank">Ƶۿ</a>| <a href="http://yinyinai155.com" target="_blank">ѹۿһëƬa </a>| <a href="http://djllgs.com" target="_blank">һѹۿߵӰ</a>| <a href="http://zz4466.com" target="_blank">޾ƷŮþþþþ</a>| <a href="http://arkinbokis.com" target="_blank">˳˳ۺþþ</a>| <a href="http://gisdn.com" target="_blank">Դ̼ƬƵ</a>| <a href="http://8mav1007.com" target="_blank">޿ѿ</a>| <a href="http://8222se.com" target="_blank">ۺۺͼ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>