JAVA网站制作之JSP毛病年夜不雅
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。js综述:服务器毛病是平安成绩的劈头,黑客对网站的打击也年夜多是从查找对方的毛病入手下手的。以是只要懂得本身的毛病,网站办理职员才干接纳响应的对策,制止外来的打击。上面先容一下一些服务器(包含Web服务器和JSP服务器)的罕见毛病。
Apache保守重写的恣意文件毛病是怎样回事?
在Apache1.2和今后的版本中存在一个mod_rewrite模块,它用来指定特别URLS在收集服务器文件体系上所映照的相对路径。假如传送一个包括准确表达参数的重写划定规矩,打击者就能够检察方针主机上的恣意文件。
上面举例申明重写划定规矩指令(个中第一行只要是包括毛病的):
RewriteRule/test/(.*)/usr/local/data/test-stuff/$1
RewriteRule/more-icons/(.*)/icons/$1
RewriteRule/go/(.*)http://www.apacheweek.com/$1
受影响的体系:
1)Apache1.3.12
2)Apache1.3.11win32
3)Apache1.2.x
不受影响体系:Apache1.3.13
如何办理在HTTP哀求中增加特别字符招致表露JSP源代码文件?
UnifyeWaveServletExec是一个Java/JavaServlet引擎插件,次要用于WEB服务器,比方:MicrosoftIIS,Apache,NetscapeEnterprise服务器等等。
当一个HTTP哀求中增加以下字符之一,ServletExec将前往JSP源代码文件。
.
%2E
+
%2B
%5C
%20
%00
乐成的使用该毛病将招致保守指定的JSP文件的源代码,比方:利用上面的恣意一个URL哀求将输入指定的JSP文件的源代码:
1)http://target/directory/jsp/file.jsp.
2)http://target/directory/jsp/file.jsp%2E
3)http://target/directory/jsp/file.jsp+
4)http://target/directory/jsp/file.jsp%2B
5)http://target/directory/jsp/file.jsp
6)http://target/directory/jsp/file.jsp%5C
7)http://target/directory/jsp/file.jsp%20
8)http://target/directory/jsp/file.jsp%00
受影响的体系:
1)UnifyeWaveServletExec3.0c
2)SunSolaris8.0
3)MicrosoftWindows98
4)MicrosoftWindowsNT4.0
5)MicrosoftWindowsNT2000
6)Linuxkernel2.3.x
7)IBMAIX4.3.2
8)HPHP-UX11.4
办理计划:
假如没有利用任何静态页面或图象,能够设置一个默许的servlet,并将"/"映照到这个默许的servlet。如许当收到一个未映照到某个servlet的URL时,这个默许的servlet就会被挪用。在这类情形下,默许的servlet能够仅仅前往"未找到文件"。假如利用了静态的页面或图象,仍旧能够作如许的设置,可是必要让这个默许的servlet处置对正当的静态页面和图象的哀求。
另外一种大概就是将*.jsp+、*.jsp.和*.jsp等映照到一个servlet,而该servlet只是前往"未找到文件"。关于*.jsp%00和*.jsp%20如许的情形,映照应以未经编码的情势输出。比方,关于*.jsp%20的映照应输出"*.jsp"。注重%20被转换成一个空格字符。
Tomcat有哪些毛病?
Tomcat3.1存在表露网站路径成绩
Tomcat3.1是在Apache软件情况下开辟的一个撑持JSP1.1和Servlets2.2的软件。它存在一个平安成绩当发送一个不存在的jsp哀求时会表露网站上彀页的全路径。
举例:
http://narco.guerrilla.sucks.co:8080/anything.jsp
了局显现:
Error:404
Location:/anything.jsp
JSPfile"/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp"notfound
办理计划:晋级到新版本
Tomcat表露JSP文件内容
JavaServerPages(JSP)范例的文件是以.jsp扩大名在Tomcat上注册,Tomcat是文件名巨细写敏感的,.jsp和.JSP是分歧范例的文件扩大名。假如提交有.JSP的链接给Tomcat,而Tomcat找不到.JSP就会以默许的.text文件范例来呼应哀求。由于在NT体系中巨细写文件名长短敏感的,以是被哀求的文件会以文本的情势送出。
假如在UNIX服务器上会呈现"filenotfound"的毛病信息。
怎样在windows下对Tomcat实行代码回护
Tomcat的一些版本有保守源代码的毛病,假如在扫瞄器中挪用JSP页面时将该文件的后缀改成年夜写,这个JSP文件的源代码将完整输入到扫瞄器中(大概扫瞄器窗口中甚么都没有,这时候你只需检察HTML源文件就能够发明)。云云一来,网站的源代码是否是城市表露在互联网上那?
不必忧虑,办理办法很复杂,把各类后缀的组合全体写到Tomcat_Homeconfweb.xml里就能够了,如许Tomcat会将分歧后缀名的JSP分隔看待,就不会保守代码了。
jsp
*.jsp
jsP
*.jsP
?lt;servlet-name>jSp
*.jSp
jSP
*.jSP
Jsp
*.Jsp
JsP
*.JsP
JSp
*.JSp
JSP
*.JSP
AllairJrun毛病有哪些毛病?
AllairJRUN不法读取WEB-INF毛病
在Allaire的JRUN服务器2.3版本中存在一个严峻的平安毛病。它同意一个打击者在JRun3.0服务器中检察WEB-INF目次。
假如用户在提交URL哀求时在,经由过程附加一个"/"使该URL成为畸形的URL,这时候WEB-INF下的一切子目次将会表露出来。打击者奇妙的使用该毛病将可以远程取得方针主机体系中WEB-INF目次下的一切文件的读取权限。
比方利用上面这个URL将会表露WEB-INF下的一切文件:
http://site.running.jrun:8100//WEB-INF/
受影响的体系:AllaireJRun3.0
办理计划:下载并安装补钉:
Allairepatchjr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows95/98/NT/2000andWindowsNTAlpha
Allairepatchjr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linuxpatch-GNUgzip/tar
AllaireJRUN2.3检察恣意文件毛病
Allaire的JRUN服务器2.3上存在多重显现代码毛病。该毛病同意打击者在WEB服务器上检察根目次下的恣意文件的源代码。
JRun2.3利用JavaServlets剖析林林总总范例的页面(比方:HTML,JSP等等)。基于rules.properties和servlets.properties的文件设置,大概使用URL前缀"/servlet/"挪用任何servlet。
它大概利用Jrun的SSIFilterservlet在方针体系上检索恣意的文件。以下2个例子显现出能被用来检索恣意的文件的URLs:
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../test.jsp
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../../../../../boot.ini
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../../../../../winnt/repair/sam
http://jrun:8000/servlet/ssifilter/../../test.jsp
http://jrun:8000/servlet/ssifilter/../../../../../../../boot.ini
http://jrun:8000/servlet/ssifilter/../../../../../../../winnt/repair/sam._
注重:假定JRun在主机"jrun"上运转,端口8000。
受影响的体系:AllaireJRun2.3.x
办理计划:下载并安装补钉:
Allairepatchjr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows95/98/NT/2000andWindowsNTAlpha
Allairepatchjr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linuxpatch-GNUgzip/tar
AllaireJRUN2.3远程实行恣意命令毛病
Allaire的JRUN服务器2.3上存在一个平安毛病,同意远程用户把在WEB服务器上的恣意文件作为JSP代码编译/实行。 假如URL哀求的方针文件利用了前缀"/servlet/",则JSP注释实行功效被激活。这时候在用户哀求的方针文件路径中利用"../",就有大概会见到WEB服务器上根目次之外的文件。在方针主机上使用该毛病哀求用户输出发生的一个文件,将严峻威逼到方针主机体系的平安。
比方:
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.jsp.JSP/../../path/to/temp.txt
http://jrun:8000/servlet/jsp/../../path/to/temp.txt
受影响的体系:AllaireJRun2.3.x
办理计划:下载并安装补钉:
Allairepatchjr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows95/98/NT/2000andWindowsNTAlpha
Allairepatchjr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linuxpatch-GNUgzip/tar
JRun2.3.x典范文件表露站点平安信息
JRun2.3.x在JRUN_HOME/servlets目次下有一些servlet典范文件,这个目次是JRun2.3.x用于加载和实行servlets文件。一切扩大名为".Java"或"class"的文件必需被删除,这是由于这些文件会表露站点的平安信息。比方:
http://www.xxx.xxx/servlet/SessionServlet会表露以后服务器坚持的HTTP毗连信息。JRUN_HOME/jsm-default/services/jws/htdocs目次下的内容也应被删撤除。这个目次保留有演示服务器功效的.jsp文件,个中一些文件扳连到会见服务器文件体系和表露服务器设置的成绩。比方对文件"viewsource.jsp"的路径反省是默许封闭的,它可被用于会见服务器文件体系。
办理计划:
1)安装2.3.3servicepack
2)从服务器上删除一切的申明文档、演示编码、典范和课本,包含安装JRun 2.3.x时寄存于JRUN_HOME/servlets目次和JRUN_HOME/jsm-default/services/jws/htdocs目次里的文档。
相干站点:http://www.allaire.com/
IBMWebSphereApplicationServer有哪些毛病?
1、IBMWebSphereApplicationServer3.0.2存在表露源代码毛病
IBMWebSphereApplicationServer同意打击者检察Webserver根目次以上的一切文件。IBMWebSphere利用JavaServlets处置多种页面范例的剖析(如HTML,JSP,JHTML,等等)。Inaddition分歧的servlets对分歧的页面举行处置,假如一个哀求的文件是未举行注册办理的,WebSphere会利用一个默许的servlet作挪用。假如文件路径以"/servlet/file/"作开首这个默许的servlet会被挪用这个哀求的文件会未被剖析或编译就显现出来。
受影响体系:IBMWebSphere3.0.2的一切版本
举例:
假如一个哀求文件的URL为"login.jsp":: http://site.running.websphere/login.jsp那末会见 http://site.running.websphere/servlet/file/login.jsp将看到这个文件的源代码。
办理计划:下载并安装补钉
http://www-4.ibm.com/software/webservers/appserv/efix.html
相干站点:http://www-4.ibm.com/software/webservers/appserv/
IBMWebSphereApplicationServer表露JSP文件内容
JavaServerPages(JSP)范例的文件是以.jsp扩大名在WebSphereApplicationServe上注册,WebSphere是文件名巨细写敏感的,.jsp和.JSP是分歧范例的文件扩大名。假如提交有.JSP的链接给WebSphere,而WebSphere找不到.JSP就会以默许的.text文件范例来呼应哀求。由于在NT体系中巨细写文件名长短敏感的,以是被哀求的文件会以文本的情势送出。
假如在UNIX服务器上会呈现"filenotfound"的毛病信息。
办理计划:点击此处下载补钉
相干站点:http://www-4.ibm.com/software/webservers/appserv/efix.html
BEAWebLogic有哪些表露源代码毛病?
受影响版本:
一切体系上的
BEAWebLogicEnterprise5.1.x
BEAWebLogicServerandExpress5.1.x
BEAWebLogicServerandExpress4.5.x
BEAWebLogicServerandExpress4.0.x
BEAWebLogicServerandExpress3.1.8
这个毛病使打击者能读取Web目次下一切文件的源代码。
WebLogic依附四个次要JavaServletsto服务分歧范例的文件。这些servlets是:
1)FileServlet-for复杂HTML页面
2)SSIServlet-forServerSideIncludes页面
3)PageCompileServlet-forJHTML页面
4)JSPServlet-forJavaServer页面
看着weblogic.properties文件,这儿是各个servlets的注册值:
1)weblogic.httpd.register.file=weblogic.servlet.FileServlet
2)weblogic.httpd.register.*.shtml=weblogic.servlet.ServerSideIncludeServlet
3)weblogic.httpd.register.*.jhtml=weblogic.servlet.jhtmlc.PageCompileServlet
4)weblogic.httpd.register.*.jsp=weblogic.servlet.JSPServlet
更多的weblogic.properties文件,假如一个哀求文件是没有注册办理的,那末就会挪用一个默许的servlet。以下是展现默许的servlet是怎样注册的。
#Defaultservletregistration
#------------------------------------------------
#Virtualnameofthedefaultservletifnomatchingservlet
#isfoundweblogic.httpd.defaultServlet=file
因而假如URL中的文件路径开首为"/file/",将会引致WebLogic挪用默许的servlet,那将会使网页未加剖析和编译而间接显现。
论证:
只需在想看的文件本来的URL路径之前到场"/file/"就会让文件未经剖析和编译,间接表露源代码。如:http://site.running.weblogic/login.jsp,那末只需会见http://site.running.weblogic/file/login.jsp就会在WEB扫瞄器里看到文件的内容。
以下是利用办法:
1.经由过程强迫利用SSIServlet检察未剖析的页面:
服务器站点经由过程WebLogic中的SSIServlet处置页面,它在weblogic.properties文件中注册以下信息:weblogic.httpd.register.*.shtml=weblogic.servlet.ServerSideIncludeServlet
经由过程URL利用SSIServlet主动处置通配符(*)。因而假如文件路径开首为/*.shtml/,将强迫文件由SSIServlet处置。假如利用别的文件范例如.jsp和.jhtml,就可以检察未剖析的jsp和jhtml代码。举例:http://www.xxx.com/*.shtml/login.jsp
2.经由过程强迫利用FileServlet检察未剖析的页面:
WebLogic利用FileServlet设置ConsoleHelpservlet,在weblogic.properties文件的以下内容可得知:
#ForConsolehelp.Donotmodify.
weblogic.httpd.register.ConsoleHelp=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.ConsoleHelp=defaultFilename=/weblogic/admin/help/NoContent.html
weblogic.allow.execute.weblogic.servlet.ConsoleHelp=everyone
因而假如文件路径以/ConsoleHelp/开首将招致WebLogic利用FileServlet,使未剖析或编译的文件作页面显现出来,举例:http://www.xxx.com/ConsoleHelp/login.jsp
办理计划:
不要利用示例中的设置办法设置FileServlet。这大概会让你的JSP/JHTML文件的源代码表露出来。请检察在线文档:
http://www.weblogic.com/docs51/admindocs/http.html#file
示例的registrations以下:
weblogic.httpd.register.file=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.file=defaultFilename=index.html
weblogic.httpd.defaultServlet=file
有两种办法能够制止这个成绩:
(1)注册那些文件servlet利用随机用户名,加年夜推测难度。比方利用象如许注册文件servlet为12foo34:
weblogic.httpd.register.12foo34=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.12foo34=defaultFilename=index.html
weblogic.httpd.defaultServlet=12foo34
(2)注册文件servlet利用wildcards声明你将利用一切这些文件扩大名作服务。举例注册文件servlet为.html文件服务:
weblogic.httpd.register.*.html=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.*.html=defaultFilename=index.html
weblogic.httpd.defaultServlet=*.html
利用下面的办法反复到场以下范例的文件*.gif,*.jpg,*.pdf,*.txt,etc.
注重:这些信息是备有证实在BEAWebLogicServerandExpress申明档的:http://www.weblogic.com/docs51/admindocs/lockdown.html
另:请寄望新版本并晋级吧。
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 是一种为 Internet发展的计算机语言 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 是一种语言,用以产生「小应用程序(Applet(s)) 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
页:
[1]