线上服务咨询
JSP,ASP和PHP安全编程
发表时间:2019-07-30 15:41:06
文章来源:沈阳软件开发
标签:网站建设 小程序开发 小程序制作 微信小程序开发 公众号开发 微信公众号开发 网页设计 网站优化 网站排名 网站设计 微信小程序设计 小程序定制 微信小程序定制
浏览次数:0
Java Server Page(JSP)作为构建动态Web页面的技术不断发展。 JSP,ASP和PHP的工作方式不同。通常,JSP页面在执行时被编译,而不是解释。对JSP文件的第一次调用实际上是一个编译成servlet的过程。当浏览器从服务器请求此JSP文件时,服务器将检查自上次编译以来JSP文件是否已更改。如果没有变化,Servlet直接执行而无需重新编译,因此效率明显提高。
今天,我将从脚本的角度与您一起研究JSP的安全性。源代码公开类等安全风险超出了本文的范围。撰写本文的主要目的是提醒刚接触JSP编程的朋友。从一开始,他们就应该培养安全编程的意识,不要犯错误,避免可以避免的损失。另外,我也是初学者。如果您有任何错误或其他意见,请发布消息。
一、认证不严——低级失误
如果要查看和修改用户的信息,则应使用modifyuser_manager.jsp文件。管理员提交http://www.somesite.com/yyforum/modifyuser_manager.jsp?modifyid=51将查看和修改ID为51的用户数据(管理员的默认用户ID为51)。但是,这样一个重要的文件缺乏认证,普通用户(包括游客)也可以直接或一目了然地提交上述请求(密码也以明文形式存储和显示)。 Modifyuser_manage.jsp也是门户网站打开,直到恶意用户完成更新数据的操作,并且当重定向到user_manager.jsp时,他将看到显示错误的错误页面。显然,仅锁一扇门是不够的。编程时,必须麻烦地将身份验证添加到身份验证的每个位置。
二、守好JavaBean的入口
JSP组件技术的核心是一个名为bean的Java组件。在程序中,逻辑控制和数据库操作可以放在javabeans组件中,然后在JSP文件中调用,这可以提高程序的清晰度和程序的可重用性。与传统的ASP或PHP页面相比,JSP页面非常紧凑,因为许多动态页面处理可以封装到JavaBeans中。
要更改JavaBean属性,请使用“
以下代码是电子购物系统的虚构源代码的一部分。此文件用于在用户的购物框中显示信息,checkout.jsp用于结帐。
Youhaveaddedtheitem 你注意到property='*'了吗?这表示用户在可见JSP页面中输入的值或直接通过查询字符串提交的所有变量将存储在匹配的bean属性中。 通常,用户提交请求如下:http://www.somesite.com/addToBasket.jsp?newItem=ITEM0105342但是不守规矩的用户呢?他们可能会提交:http://www.somesite.com /addToBasket.jsp?newItem=ITEM0105342&balance=0这样,balance=0信息存储在JavaBean中。当他们点击“chekout”结账时,费用是免费的。这与PHP中的全局变量引起的安全问题完全相同。这表明:“property='*'”必须谨慎使用! 三、长盛不衰的跨站脚本 跨站点脚本攻击涉及将恶意JavaScript,VBScript,ActiveX,HTML或Flash脚本插入到远程网页的HTML代码中,窃取浏览页面的用户的隐私以及更改用户的设置。销毁用户的数据。在大多数情况下,跨站点脚本攻击不会影响服务器和Web应用程序的运行,但会对客户端安全构成严重威胁。 四、时刻牢记SQL注入 一般的编程书籍不注重让他们从初学者开始就养成安全编程的习惯。着名的《JSP编程思想与实践》是向初学者演示用数据库编写登录系统(数据库是MySQL) 五、String对象带来的隐患 Java平台确实使安全编程更容易。 Java中没有指针,这意味着Java程序不再寻址地址空间中的任何内存位置,例如C.当JSP文件编译成.class文件时,会检查安全问题。例如,拒绝尝试访问超出数组大小的数组元素,这很大程度上避免了缓冲区溢出攻击。但是,String对象会给我们带来一些安全隐患。如果密码存储在Java String对象中,则密码将保留在内存中,直到它被垃圾回收或进程终止。即使垃圾收集完成,它仍将存在于空闲内存堆中,直到它被重用。密码字符串驻留在内存中的时间越长,窃听的风险就越大。更糟糕的是,如果实际内存减少,操作系统会将密码字符串页面调度到磁盘的交换空间,因此容易受到磁盘块窃听攻击。为了最小化(但不是消除)这种折衷的可能性,您应该将密码存储在char数组中并在使用后将其归零(String是不可变的且不能归零)。 网站建设,小程序开发,小程序制作,微信小程序开发,公众号开发,微信公众号开发,网页设计,网站优化,网站排名,网站设计,微信小程序设计,小程序定制,微信小程序定制