设为首页 收藏本站
查看: 914|回复: 0

[经验分享] [SIR数据集实验][1]apache-xml-security实验方法

[复制链接]

尚未签到

发表于 2015-8-4 12:38:04 | 显示全部楼层 |阅读模式
  SIR是目前软件研究领域非常著名的数据集,大量研究在使用SIR中的标准数据集。例如:
  P. A. Nainar and B. Liblit, "Adaptive bug isolation," in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, Cape Town, South Africa, 2010, pp. 255-264.
  R. Santelices and M. J. Harrold, "Exploiting program dependencies for scalable multiple-path symbolic execution," in Proceedings of the 19th international symposium on Software testing and analysis, Trento, Italy, 2010, pp. 195-206.
  这两篇论文。这篇博客里就想总结一下怎么样使用SIR中的Java类数据进行实验。
  首先,到SIR的官方网站:http://sir.unl.edu/portal/index.php ,需要指出的是,该网站只实行申请注册,并且只对研究人员开放,申请者在申请时需要说明自己的学校、科研项目及后续主要研究计划等。但是申请还是比较简单的,只要稍微认真填写申请表就可以。
  申请成功之后在左边导航栏选择:“Download Objects”——在右侧页面选择Java——点击“Display”,在刷新后的页面中可以看到xml-security,点击“all platforms”就可以进行下载。下载后进行解压,可以得到一个非常复杂的文件夹,如下图所示:
DSC0000.jpg
  这个文件夹常常让人不知所措,不就是一个xml-security吗?怎么会出来这么多文件夹。但是为了伟大的科学研究事业,我们还得耐心慢慢分析。需要指出的是,虽然SIR中提到Java数据集可以适用于任何安装合适版本JVM的系统,但实际上他们提供了很多仅适用于Linux类系统的bash脚本。所以必须在Linux类系统中才能进行实验。
  
  下面我们来具体学习一下怎么在这么多文件夹中怎么进行实验,按照Java Object Directory Specification中的介绍,scripts这个文件夹是“The directory from which experiments are run.” 所以我们就从这个文件夹开始学习。进入到scripts文件夹后,可以看到如图所示的几个文件和文件夹。
DSC0001.jpg
  其中的README文件详细列出了怎么安装(实际上就是Build)xml-security,以及怎么样驱动实验。我这里简单翻译和总结一下(本文在ubuntu系统上测试,并且已经有JDK,关于怎么在ubuntu系统上安装JDK,可以参考我之前的一篇博文):
  
  一、首先,需要进行环境变量的设置。首先要设置一个experiment_root环境变量,指向“apache-xml-security”所在的目录。设置环境变量的方法很多,文档中说如果使用的是“bash”(我用的操作系统ubuntu),可以使用export命令,以我用的机子为例,“apache-xml-security”所在的目录为“/home/quyu/Projects”那么可以输入:



export experiment_root=/home/quyu/Projects

  但是经检验,export设置环境变量,在终端退出后将失效。为了方便起见,可以更改/etc/environment文件更改环境变量。可以终端输入:



sudo gedit /etc/environment

  打开environment后,按照该README中提示的内容,加入几个环境变量,例如我增加的是:



experiment_root="/home/quyu/Projects"
CLASSPATH=".:/home/quyu/jdk1.6.0_24/lib:${experiment_root}/apache-xml-security/source:${experiment_root}/apache-xml-security/source/xml-security:${experiment_root}/apache-xml-security/source/xml-security/build/classes"
JAVA_HOME="/home/quyu/jdk1.6.0_24"
  增加环境变量很简单,但是一定要注意不要把之前的CLASSPATH之类的值删掉了,而应该用冒号隔开。
  二、安装相应版本。xml-security的原版和注入缺陷后的版本安装过程都差不多,但是我在这里缺遇到了很多问题,这里简要记录一下。按照README文档中介绍,要安装版本,只需要运行“install.sh orig version_number”(运行原版)和“install_seeded.sh version_number”(运行注入缺陷版本),其中的version_number就是1、2、3之类的版本号。但是实际运行中,如果输入:



bash install.sh orig 0
  就会报错:“无法删除……权限不够”
  如果输入:



sudo bash install.sh orig 0
  则权限符合,但是这种情况下不能正常解析“experiment_root”这个环境变量,依然不能正常运行。这里需要以root身份运行,网上介绍了一种root用户的登录方法,这里转载过来:
  --------------------------------------------------------
  Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许“su”到 root。
有人说这是个不好的实践,特别是对于服务器来说。我觉得对于桌面用户来说,这样安全性更高一些,是应该的;但对于服务器可以设置成“允许su 到root,但不允许root用户直接登录”。而我为了开发时的方便,则在桌面和服务器上都采用这种方式。
  允许 su 到 root
  非常简单,下面是设置的方法:
quyu@ubuntu:~$ sudo passwd
Password:

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-94092-1-1.html 上篇帖子: discuz,ecshop的伪静态规则(apache+nginx) 下篇帖子: Apache POI(Excel) 初探
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表