
1 9hills 2013-09-22 19:47:21 +08:00 php以非特权用户启动,然后只给这个用户很少的权限就是了。。 |
2 bixuehujin 2013-09-22 21:56:33 +08:00 白名单? |
3 lookhi 2013-09-22 22:00:15 +08:00 为啥要php去执行? 可以这么搞不行么 1. php去设定一个标志(创建一个文件,数据库加个字段啥的都行),需要执行脚本了。 2. 脚本加到定时中,检测这个标志,存在则执行。 |
4 mongodb 2013-09-22 22:09:02 +08:00 3l good idea 但创建文件会带来风险(文件可以写入就是风险) 数据库加字段可能带来效率问题 更好的办法是php输出一定的值,shell通过curl访问页面探测到特定值来执行下面的步骤 |
5 2code 2013-09-22 22:13:30 +08:00 php使用个非特权用户, 给脚本Set UID权限设置为以root用户执行。 |
8 otakustay 2013-09-23 02:49:41 +08:00 写个脚本开个socket(http也成,随意了)监听,php把exec的信息送到socket上,则脚本来执行。php保持低权限,脚本提供高权限并使用白名单等手段控制可exec的命令在可控范围内。执行的过程等都可以通过socket自定义协议来输出 |
9 wzxjohn 2013-09-23 02:55:21 +08:00 @otakustay 我觉得不能直接传命令的信息,这样的话可能会带入恶意参数。最好是指定有限的几个功能,每个功能分配一个ID,守护程序根据ID执行不同的操作。而且变量也需要严格过滤,宁可错杀不可放过。 |
10 otakustay 2013-09-23 11:50:43 +08:00 @wzxjohn yes,相当于一个更严格的白名单,从安全的角度考虑是很适合的。socket相比3l提出的写文件,其安全风险会更小一点,毕竟文件系统的写权限本身就是个危险的事 |
11 csensix OP @otakustay 朋友推荐了amh一键安装,有web界面的后台管理,通过软件手段过滤shell操作,效果很好,只是没弄明白实现的原理 |
12 aliuwr 2013-09-23 13:32:26 +08:00 |