站长修改代码时容易忽视的三点安全问题

  作为一个网站站长,尤其是新站站长,有时候为了修改网站的功能、添加网站的特色,就不得不自己写一些代码。在这个过程中,若出现一点错误,可能就会给网站带灾难性安全危机。即使网站原本是由专业开发团队开发上线的,有较好的安全性,但是在木桶原理的作用下,你添加的那几行错误代码,完全可以导致整个网站的安全机制土崩瓦解。

  现在将EeSafe网站安全联盟列出几点使用php架构的网站常出现的代码级安全问题,希望对站长的修改代码工作有一定的帮助。大家有什么疑问,可以到EeSafe网络安全中心交流,EeSafe期待和大家共同进步

  1.现在最常见的php代码编写上的安全问题

  Php全局变量危害代码:

  

  很明显,这是判断登陆的是否是管理员,很多网站也用这个逻辑判断其他重要的条件。

  看上去这段代码很正确,但其实有个致命的错误,它假定$isadmin在没赋值的时候是空值,但由于php语言为了使php代码访问用户的输入尽可能容易,php把输入数据作为全局变量来处理。所以攻击者可以创建任意全局变量并赋值。

  如何避免这样最容易被会略的问题,如果你网站使用的是PHP程序开发,如果你已经这样做了,并且web应用程序变量很多的话,最节省效率的办法就是修改php的track_vars选项。

  2.网站双条件认证安全问题

  判断用户名和密码,先判断是否为空,然后从数据数据库找同时符合条件的数据。

  如果采用这样的逻辑将直接导致sql注入。

  如果你要增加或修改这样的功能,程序逻辑应该是:首先,找到数据库中用户名符合的数据(当然用户名在数据库中必须是唯一的),然后查看这条数据中对应的密码是否和要验证的密码相同,这样就避免双认证问题。

  3.用用户名去判断用户权限

  很多网站都有这样的问题,比如

  

  看上去这个也没有逻辑问题,但为什么还是存在安全漏洞?是因为很多数据库对特殊字符都不处理,比如mysql这样的数据库,如果输入的字符在ASCII码129~255范围内,是不做处理的,也就是如果注册用户使用“admin+特殊字符”时,他也同样能够成功注册一个名为admin的用户,安全机制消失了。欢迎交流探讨。

  EeSafe网站安全联盟原创文章

  转载请以链接形式注明原文地址:http://www.eesafe.com/bbs/thread-1309-1-1.html

时间: 2024-11-01 23:20:18

站长修改代码时容易忽视的三点安全问题的相关文章

《Web测试囧事》——2.3 修改产品代码时忽视了对遗留数据的处理

2.3 修改产品代码时忽视了对遗留数据的处理 在线购物平台通常允许商户展示很多商品信息,而商户一般会批量上传这些信息.小蔡所在的产品团队也为用户提供了这一功能,允许他们使用规定格式的XML文件批量上传商品信息(见图2-3). 以批量上传图书信息为例,商户通过在XML里设置店铺的ID,商品ID.分类.名称.ISBN.作者.图书类别.价格.出版日期.简介和图书页数,就可以一次性完成多本图书信息的上传. 在功能上线后的一段时间内,业务方根据商户使用的反馈,发现需要对上传XML的字段进行如下修改. "

Android当修改一些代码时使用什么编译命令可以最有效率

  1: ./mk n(r) kernel; ./mk bootimage;当修改kernel相关代码时,要使用此命令,具体如下: alps/kernel/ alps/mediatek/platform/mt65xx/kernel/ alps/mediatek/source/kernel/ alps/mediatek/coustom/mt65xx/kernel/ alps/mediatek/coustom/common/kernel/ alps/mediatek/coustom/$porject

Android 当修改一些代码时使用什么编译命令可以最有效率

  1: ./mk n(r) kernel; ./mk bootimage;当修改kernel相关代码时,要使用此命令,具体如下: alps/kernel/ alps/mediatek/platform/mt65xx/kernel/ alps/mediatek/source/kernel/ alps/mediatek/coustom/mt65xx/kernel/ alps/mediatek/coustom/common/kernel/ alps/mediatek/coustom/$porject

myeclipse用svn插件提交代码时,svn控制台的输出信息有没有保存下来,保存在哪儿?

问题描述 myeclipse用svn插件提交代码时,svn控制台的输出信息有没有保存下来,保存在哪儿? myeclipse用svn插件提交代码时,svn控制台的提交输出信息有没有保存下来,保存在哪儿? 解决方案 右键VisualSVN的仓库里的项目-->查看,就可以在浏览器看到每一次提交的源码. 解决方案二: Windows 下 VisualSVN 强制提交时写入日志信息 设置方法一: 在版本库的路径下比如是 C:Repositoriestesthooks 可以看到 pre-commit.tmp

sublime text写python代码时,tab缩进只有两个空格,怎么改成4个?

问题描述 sublime text写python代码时,tab缩进只有两个空格,怎么改成4个? 使用前在网上找了sublime text配置python的方法. 设置了preference.sublime-settings-users里面的tab_size:4见下图使用效果如下,不管是打tab还是sublime默认的自动缩进都是两个空格 解决方案 Sublime text 设置Tab为4个空格sublime text2 配置tab为4个空格Sublime Text2 配置tab为4个空格 解决方

Win7系统修改hosts时提示没有权限的方法

解决Windows 7系统修改hosts时提示没有权限的方法,一个有三个步骤: 1.进入hosts文件的目录,C:WINDOWSsystem32driversetc,将hosts文件copy一份出来,放在除该目录下的任意地方(例如桌面等) 2.修改你copy出来的hosts文件,修改后保存即可.此时不会出现权限的问题. 3.将上一步修改的hosts文件复制到C:WINDOWSsystem32driversetc目录下,替换原来的hosts文件即可.

网络实战建域控制器时别忽视DNS设置

域控制器是公司网络管理的核心,它出现故障往往会导致全网用户计算机的登录失败.不过,大家在建立域控制器时往往忽视了对DNS的设置,致使域中的DNS频频引发故障.你是否知道DNS的重要性呢?如果DNS设置出问题会带来什么样的后果呢?笔者负责公司服务器的维护工作,最近在实际工作中就遇到了一起突发的与DNS相关的服务器故障. 故障现象 公司规模不是很大,大概有50多台计算机,购买了两台IBM服务器.由于内部使用的某个应用软件需要Windows域的支持,所以在这两台IBM服务器上启用了windows 20

浅谈站内优化你我容易忽视的三点细节

随着搜索引擎对于算法的不断更新,我们可以看到一个很明显的信号,那就是搜索引擎对于站点内部结构越来越关注.对此如果你想要给搜索引擎留下一个好的印象,你不在只是做几个高质量的外链就可以的,你还需要有一个合理的站内内部结构做坚实的后盾. 我们在做站点的内部优化的过程中,我们不仅仅需要考虑到搜索引擎索引,同时我们还需要考虑到用户的友好体验度.我们在内链建设中需要注意来自各方面的细节,只有我们做好内链建设的细节,才能使优化达到我们想要的效果.那么笔者将在下文中分享自己的三点心得? 一:不要主导航栏目上安排

实例浅析站长写好网站的描述标签三方法

目前针对于网站优化来说,大部分站长都认为网站的描述标签对优化没什么作用了,顶多就是为了美观增加一些文字说明.但是笔者不这么认为,在搜索引挚眼里,网站描述标签就是一个归纳网站整体内容的标签,而在用户眼里,网站描述标签则是让用户可以通过搜索结果就知道是否自己所要找的信息.所以,网站标题于搜索引挚或是用户都还有一定的作用.那么咱们作为SEO优化人员应该如何书写自己的网站描述标签呢?下面以几个例子来讲解一下笔者的观点.   一.简单型 目前站长做优化时,都对描述标签不是很看重了,但是笔者认为标签还有有用