加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

浅谈PHP安全规范

发布时间:2018-10-15 10:42:58 所属栏目:评论 来源:littlepotato
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 一、前言 php因天生支持web应用的开发,以其简单易学,开发效率高而备受喜爱。使其占据了大片的市

暴力枚举攻击,服务端没有在后台设置错误次数上限和相关校验,就会给攻击者暴力枚举用户或者基于字典的密码暴力破解。所以正确的代码编写规范需要规定容许的错误尝试次数,超过这个值就会锁定账户一个定义长的时间。这里需要明确,光加入一个随机的token就想避免Brute Force是相当幼稚的,攻击者通过python脚本来抓取页面的token,就可以完全绕过,这也是high等级所犯的错。这里就不展示,只列出impossible等级和low 等级的代码,供对比阅读:

(1) Low level

  1. <?php  
  2.  
  3. if( isset( $_GET[ 'Login' ] ) ) {  
  4.     // Get username  
  5.     $user = $_GET[ 'username' ];  
  6.  
  7.     // Get password  
  8.     $pass = $_GET[ 'password' ];  
  9.     $pass = md5( $pass );  
  10.  
  11.     // Check the database  
  12.     $query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";  
  13.     $result = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' );  
  14.  
  15.     if( $result && mysql_num_rows( $result ) == 1 ) {  
  16.         // Get users details  
  17.         $avatar = mysql_result( $result, 0, "avatar" );  
  18.  
  19.         // Login successful  
  20.         echo "<p>Welcome to the password protected area {$user}</p>";  
  21.         echo "<img src="{$avatar}" />";  
  22.     }  
  23.     else {  
  24.         // Login failed  
  25.         echo "<pre><br />Username and/or password incorrect.</pre>";  
  26.     }  
  27.  
  28.     mysql_close();  
  29. }  
  30.  
  31. ?> 

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读