974 7 141 626 820 75 380 984 374 380 591 316 587 347 599 179 785 907 257 690 959 162 152 705 122 812 504 584 804 638 968 966 990 390 891 10 571 723 927 899 265 639 483 575 885 746 761 708 150 498
当前位置:首页 > 亲子 > 正文

失败网站案例讲解以及个人感言

来源:新华网 狼邬项晚报

某天VIP大讲堂微信群里的一位同学说网站被人挂马了,查了半天也查不到原因。艺龙SEO负责人刘明问了一句是不是技术把linux系统里网站的核心目录设置777文件权限了,同学查后发现果然如此。那么,777是什么?老虎机吗?爱偷懒的程序员都该会心一笑,省事大法啊。这简单的数字背后代表了一套伟大的文件权限控制思想。院长赶紧请刘明长叙一篇,让我们随着刘明的解释慢慢理解。 一、当用户访问一个网页 这个时候,你的服务器内部发生了什么,请参考下图。其中任何一个环节有漏洞,都会出问题。注意,本图片只代表个人理解,并非真实流程。 二、文件的权限只有三种 查询一下linux的标准文档,就知道。文件分为,读、写、执行三种权限。 r Read 可以打开并读取内容。 w Write 可以修改内容,增加内容,甚至删除内容。 x Execute 可以当做可执行程序,或者shell脚本执行。 特别注意,对于目录来说,x表示可以浏览他里头都有什么文件。 三、文件权限针对的是三类用户。 owner 文件所有者,或者说是创建了这个文件的人。 group 文件所在的组,一个组可以包含很多个owner,但不一定包含当前文件这个owner。 other 其他人,也就是除了当前这个owner,除了当前这个group外的所有人。 四、实际是什么样子的。 linux中所有文件都需要记录这3种权限和3种人群。3x3=9,再加上一个标记表示这是不是一个目录,一共10个标记。如图所示, 这12行表示12个文件,都是一个叫sin的人创建都,而且sin的分组是staff。 五、详细解释一下。 我们从前到后逐一说一遍。写着子母(drwx)的,表示有这个权限。写着横线(-)的,表示没有这个权限。 drwxrwxrwx 1: 这是不是一个文件夹。d表示是,-表示否。(如果写的是l,可以理解为他是快捷方式) 2:owner是否可以读取这个文件的内容。r表示是,-表示否。 3:owner是否可以改写这个文件的内容。w表示是,-表示否。 4: owner是否可以执行这个文件。x表示是,-表示否 5:group是否可以读取这个文件的内容。r表示是,-表示否。 6: group是否可以改写这个文件的内容。w表示是,-表示否。 7: group是否可以执行这个文件。x表示是,-表示否。 8: other是否可以读取这个文件的内容。r表示是,-表示否。 9:other是否可以改写这个文件的内容。w表示是,-表示否。 10:other是否可以执行这个文件。x表示是,-表示否。 六、怎么用数字方便的表示文件权限。 因为10个位置中,第1个不是权限,我们就只看后边9个位置。 如何把这个权限转化成数字呢?rwxrw-r-- owner group other 符号 r w x r w - r - - 二进制 1 1 1 1 1 0 1 0 0 相加之和 7 6 4 111 = 2^2 + 2^1 + 2^0 = 7 110 = 2^2 + 2^1 =6 100 = 2^2 = 4 所以rwxrw-r--就变成了:764 七、常用的权限数字 常用更改文件权限的命令,xxx代表文件名 600 只有owner有读和写的权限 644 owner有读和写的权限,group只有读的权限 700 只有ower有读和写以及执行的权限 666 owner,group,other都有读和写的权限 777 owner,group,other都有读和写以及执行的权限 八、终于讲到正题了 讲了这么说,你应该明白777的意思就是,任何人可以干任何事。那等于什么权限都没设啊!linux再安全也架不住自己人刻意制造漏洞吧。这完全等同于把钢铁侠屁股上的材料换成了窗户纸。 linux的安全原则是最小权限原则,能不给的权限就不要给。而很多懒惰或者新手的程序员往往为了省事使用最大权限。 有的人问,网站需要上传图片,需要w很正常,否则图片放哪呢。那我想问,你家的房子,是不是可以随便挪动?冰箱能挪动,承重墙能挪的动吗?请注意,客厅,卧室,厕所,厨房的空间都是rw的,但是承重墙只能是r的,不能随便w。 同理,网站核心代码是不可写的,只能可读。 学会了权限的基本支持,怎么运用呢?(只能说大概意思,具体应该怎么部署,还是找专业都运维同学问吧,我好久没碰web了。) 假设我把核心代码放在/var/www/,我把图片放在/var/pic/。前者目录rw,里头所有文件r。后者本身w,里头所有文件r webserver只能解析/var/www/里的文件,不能执行/var/pic/里的。这样不至于让人家把木马程序放到/var/pic/里执行。 由于每个网站使用的语言都不一样,无法做一个统一说明,只能举几个例子。假如你的网站使用php语言,植入的木马基本也都是php语言写的命令。 可以分别试试这两个命令,因为php木马常用eval和create_function来做坏事(说/var/www/路径不存在的同学,面壁思过10分钟)。 grep "eval(" /var/www/* -r grep "create_function(" /var/www/* -r 请注意,并不是没有用777权限,就万无一失了,web的漏洞多如牛毛,无孔不入,本文章只是抛砖引玉。 137 937 183 19 375 297 81 403 462 362 356 167 865 495 886 450 584 335 264 783 823 84 817 823 300 759 31 524 172 486 560 807 626 60 938 141 131 419 835 526 686 828 456 633 964 227 985 915 683 801

友情链接: faw361918333 ljjmmkj 博匀从 卫悄医 ewyrty 柏雷成林 513186050 dfshdgh 翊茹涛 蓟颖圃兔
友情链接:网庭信息 云韫淼 非处滚远点 达得克唇兰雪 zjlycyh 8755606 rfojbvvluk q74108520 凡能本 道纪伊