zoukankan      html  css  js  c++  java
  • php安全简析

    第一章 简介

      1>  原则
        深度防范
        最小权限
        简单就是美
        暴露最小化

      2>方法

        平衡风险与可用性

        跟踪数据

        过滤输入
        输出转义

    //****防止表单提交骗术
    session_start();
    $_SESSION['token'] = md5(uniqid(mt_rand(), true));

    //*****初始化一个用于保存过滤数据数组。

    $clean = array();

    if(ctype_alpha($_POST['name'])){
    $clean['name'] = $_POST['name'];
    }else{

    //错误
    }
    //****避免跨站点脚本
    /*使用真确的字符编码*/
    header('Content-Type:text/heml; charset=UTF-8');
    /*为保存转义后的数据初始化一个数组*/
    $html = array();
    $html['username'] = htmlentities($clean['username'], ENT_QUOTES,'UTF-8');

    //****避免SQL注入
    /*使用PDO之类的数据库来针对你的数据库进行适当的转义*/
    $db = new PDO('mysql:host=localhost;dbname=users',$_SERVER['DB_USER'],$_SERVER['DB_PASSWORD']);
    $statement = $db->prepare("INSERT INTO user (username, password) VALUES (:username, :password)");
    $statement->bindParam(':username',$clean['username']);
    $statement->bindParam(':password',$clean['password']);
    $statement->execute();
    $db = NULL;

    安全的 PHP 表单处理代码


    <?php
    $okay = 0;
    $username = $_POST['user'];
    $pw = $_POST['pw'];

    $sql = "select count(*) as ctr from users where 
    username='".mysql_real_escape_string($username)."' 
    and password='". mysql_real_escape_string($pw)."' limit 1"; 

    $result = mysql_query($sql);

    while ($data = mysql_fetch_object($result)){
    if ($data->ctr == 1){
    //they're okay to enter the application!
    $okay = 1;
    }
    }

    if ($okay){
    $_SESSION['loginokay'] = true;
    header("index.php");
    }else{
    header("login.php");
    }
    ?>


    //****将密码置于站点文件外部
    mysql_connect('localhost' , $_SERVER['DB_USER'], $_SERVER['DB_PASSWORD']);

     

  • 相关阅读:
    关于根据索引 删除队
    Vs 2012 编译C 语言
    动态绑定 dgvlist 列
    自定义控件闪烁问题
    程序员都不读书,但你应该读
    对于委托的理解 委托和事件
    ​label 中 文字的位置
    vs2010 折叠C/c++中的if
    关于动态创建控件性能提高 以及 SuspendLayout & ResumeLayout 的使用
    c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
  • 原文地址:https://www.cnblogs.com/suihui/p/2558460.html
Copyright © 2011-2022 走看看