﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Ginew.Z 的博客-随笔分类-Server</title><link>http://www.blogjava.net/ginew/category/9095.html</link><description>一切，为了让生活更简单、更自然</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 20:40:09 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 20:40:09 GMT</pubDate><ttl>60</ttl><item><title>resin使用security-manager的问题</title><link>http://www.blogjava.net/ginew/archive/2006/06/09/51636.html</link><dc:creator>无风之雨</dc:creator><author>无风之雨</author><pubDate>Fri, 09 Jun 2006 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/ginew/archive/2006/06/09/51636.html</guid><wfw:comment>http://www.blogjava.net/ginew/comments/51636.html</wfw:comment><comments>http://www.blogjava.net/ginew/archive/2006/06/09/51636.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ginew/comments/commentRss/51636.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ginew/services/trackbacks/51636.html</trackback:ping><description><![CDATA[
		<p>     我们打算为用户架设单独的虚拟主机服务器，可以让企业自主上传jsp、htm、php等程序。其中resin用来做jsp的容器。<br />     由于是用户自主通过FTP上传程序，我们必须控制这些程序可以执行的权限，不能让用户随便浏览硬盘上的文件，但又要能让resin可以正常运行。比如：/data/user_a目录中的程序，只能在/data/user_a目录及其子目录中读写，如果想要访问其他目录，就没有权限。<br />     通过研究resin的文档以及JAVA的机制，我认为要实现以上构想，可以通过使用java权限管理器来构建一个resin的沙箱来对java的具体操作进行授权。<br />参考文档：<a href="http://www.caucho.com/resin-3.0/security/securitymanager.xtp">http://www.caucho.com/resin-3.0/security/securitymanager.xtp</a> ，<a href="http://www.jscud.com/srun/news/viewhtml/3_2005_10/148.htm">http://www.jscud.com/srun/news/viewhtml/3_2005_10/148.htm</a></p>
		<p>     当我认为胜利在望的时候，发现resin好像不支持grant codeBase "file:xxxx 。<br /><br />grant codeBase "file:/data/ftpdata/user01.test.com/-" {<br /> permission java.io.FilePermission "/data/ftpdata/user01.test.com/-", "read,write,delete";<br />};<br />     上面的语句，语法上没有问题，但就是不起作用。那个codebase目录下的文件，对本目录没有任何权限。<br /><br />        resin的官方论坛里面，有人在2001年，针对resin1.2.5就提出了和我一摸一样的疑问（<a href="http://www.caucho.com/support/resin-interest/0105/0106.html">http://www.caucho.com/support/resin-interest/0105/0106.html</a>），作者发现问题是由于resin的classloader是非安全的，因此改了resin原文件后解决了问题（<a href="http://www.caucho.com/support/resin-interest/0105/0112.html">http://www.caucho.com/support/resin-interest/0105/0112.html</a>），但是我看resin3的源代码，里面已经基于java.security.SecureClassLoader，因此应该不是这个原因了。<br />     以下是我的resin.policy文件：</p>
		<p>grant codeBase "file:${java.home}/lib/-" {<br /> permission java.security.AllPermission;<br />};</p>
		<p>grant codeBase "file:${java.home}/jre/lib/-" {<br /> permission java.security.AllPermission;<br />};</p>
		<p>grant codeBase "file:${resin.home}/lib/-" {<br /> permission java.security.AllPermission;<br />};</p>
		<p>grant {<br /> permission java.util.PropertyPermission "*", "read";<br /> permission java.io.SerializablePermission "enableSubstitution";<br /> permission java.lang.reflect.ReflectPermission "suppressAccessChecks";  <br /> permission java.lang.RuntimePermission "accessClassInPackage.*";<br /> permission java.lang.RuntimePermission "getClassLoader";<br /> permission java.lang.RuntimePermission "accessDeclaredMembers";<br /> permission java.lang.RuntimePermission "modifyThreadGroup";<br /> permission java.lang.RuntimePermission "setContextClassLoader"; <br /> permission java.lang.RuntimePermission "setIO";<br /> permission java.lang.RuntimePermission "stopThread";<br /> permission java.lang.RuntimePermission "createClassLoader";<br /> permission java.lang.RuntimePermission "getProtectionDomain";<br /> permission java.lang.RuntimePermission "defineClassInPackage";<br /> permission java.security.SecurityPermission "putProviderProperty.SunJCE";<br /> permission java.security.SecurityPermission "insertProvider.SunJCE";<br /> permission java.util.logging.LoggingPermission "control";<br /> permission java.lang.RuntimePermission "getAttribute";<br /> permission java.util.PropertyPermission "jaxp.debug", "read";<br /> permission ognl.OgnlInvokePermission "invoke.*";<br /> permission java.net.SocketPermission "localhost:3306","connect";<br /> permission java.io.FilePermission "${resin.home}/-", "read";<br /> permission java.io.FilePermission "${java.home}/-", "read";<br /> permission java.io.FilePermission "/tmp/-","read,write,delete";<br /> permission java.io.FilePermission "/tmp","read,write,delete";<br /> permission java.io.FilePermission ".","read";<br /> permission java.io.FilePermission "/home/apps/java/jdk/lib/tools.jar","read";<br /> permission java.io.FilePermission "/bin/sh", "read,execute";<br />};</p>
		<p>//以下语句没有任何作用，/data/ftpdata/user01.test.com/下的jsp对这个目录没有读的权限<br />grant codeBase "file:/data/ftpdata/user01.test.com/-" {<br /> permission java.io.FilePermission "/data/ftpdata/user01.test.com/-", "read,write,delete";<br />};<br /></p>
<img src ="http://www.blogjava.net/ginew/aggbug/51636.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ginew/" target="_blank">无风之雨</a> 2006-06-09 11:00 <a href="http://www.blogjava.net/ginew/archive/2006/06/09/51636.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>域名和COOKIE的问题</title><link>http://www.blogjava.net/ginew/archive/2006/04/11/40505.html</link><dc:creator>无风之雨</dc:creator><author>无风之雨</author><pubDate>Tue, 11 Apr 2006 09:54:00 GMT</pubDate><guid>http://www.blogjava.net/ginew/archive/2006/04/11/40505.html</guid><wfw:comment>http://www.blogjava.net/ginew/comments/40505.html</wfw:comment><comments>http://www.blogjava.net/ginew/archive/2006/04/11/40505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ginew/comments/commentRss/40505.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ginew/services/trackbacks/40505.html</trackback:ping><description><![CDATA[今天发现，在IE里面，当一个域名包含_的时候，IE不会给这个网站发送COOKIE，真变态。同事调试了半天，才发现还有这个问题<img src ="http://www.blogjava.net/ginew/aggbug/40505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ginew/" target="_blank">无风之雨</a> 2006-04-11 17:54 <a href="http://www.blogjava.net/ginew/archive/2006/04/11/40505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何让referer和user-agent同时为空时记录日志</title><link>http://www.blogjava.net/ginew/archive/2006/04/11/40434.html</link><dc:creator>无风之雨</dc:creator><author>无风之雨</author><pubDate>Tue, 11 Apr 2006 04:25:00 GMT</pubDate><guid>http://www.blogjava.net/ginew/archive/2006/04/11/40434.html</guid><wfw:comment>http://www.blogjava.net/ginew/comments/40434.html</wfw:comment><comments>http://www.blogjava.net/ginew/archive/2006/04/11/40434.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ginew/comments/commentRss/40434.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ginew/services/trackbacks/40434.html</trackback:ping><description><![CDATA[一般情况下，Referer和User-Agent同时为空的时候，可以认为是其他网站在批量采集本站数据，我打算deny掉这种请求。不过apache文档里面没有提到有两个环境变量的与操作。最后chinaunix上有大侠回答了我的问题：<br /><br />SetEnv   log_flag=1<br />SetEnvIf Referer !"^$"  log_flag=0<br />SetEnvIf user-agent !"^$" log_flag=0<br />...<br /><br />看字面上，就是如果用两个非的或来代替与<br />这样，只要两个条件有一个不满足，就log_flag就会变掉，只要它变掉了，就说明不符合我屏蔽的规则。<br />高手就是高手，为什么非要苛求一定要有“与”呢，两个“非”的“或”，不一样达到要求？<br /><br />学习了。<br /><img src ="http://www.blogjava.net/ginew/aggbug/40434.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ginew/" target="_blank">无风之雨</a> 2006-04-11 12:25 <a href="http://www.blogjava.net/ginew/archive/2006/04/11/40434.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>