笔记:php高级

发布时间:2020-05-29 00:00:00 阅读:(591)

    XSS

    XSS又叫CSS(cross-site script),跨站脚本攻击。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的

    办法:htmlspecialchars()

    htmlspecialchars()把一些预定义的字符转换为html实体。

    PHP包含

    include和require

    include与require语句用于在执行流中插入卸载其他文件中的有用的代码。
    include和require除了处理错误的方式不同之外,在其他地方都是相同的

    • require生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行
    • include生成一个警告(E_WARNING),在错误发生后脚本会继续执行
    include_oncerequire_once只引入一次,且使用后失效,多次引入也只能使用一次

    cookie常用于识别用户。是一种服务器留在用户计算机上的小文件,当同一台计算机通过浏览器请求页面时,这台计算机将会发送cookie
    创建Cookie:setcookie(name,value,expire,path,domain)
    取回cookie的值:$_COOKIE
    使用 isset()函数确认是否已经设置了cookie

    Session

    session变量用于存储关于用户会话(session)的信息,或者更改用户会话的设置。
    session变量存储单一用户的信息,并对于应用程序中所有页面都是可用的。
    session通过在服务器生存储用户信息以便随后使用,会话信息是临时的,在用户离开网站后将被删除。
    session工作机制:为每个访客创建一个唯一的id(UID),并基于这个UID来存储变量。UID存储在cookie中,或者通过URL进行传导
    开启session:session_start()
    存储和获得session变量:$_SESSION
    销毁session:unset()或者session_destroy()(session_destroy彻底重置session,将失去所有的session数据)

    错误处理

    基本的错误处理:使用die()函数

    创建自定义错误处理器

    语法:
    error_function(error_level,error_message,error_file,error_line,error_context)

    参数 描述
    error_level 必需。为用户定义的错误规定错误报告级别
    error_message 必需。为用户定义的错误规定错误消息
    error_file 可选。规定错误发声的文件名
    error_line 可选。规定错误发生的行号
    error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量和值

    设置错误处理程序

    PHP的默认错误处理程序是内建的错误处理程序。可以修改错误处理程序,使其仅应用到某些错误,这样脚本就能以不同的方式处理不同的错误。
    set_error_handler(eorr_name,error_level)

    错误记录

    默认情况下,根据在php.ini中的error_log配置,使用error_log()函数,可以向指定文件或远程目的地发送错误记录

    Exception

    异常处理用于在指定的错误发生时改变脚本的正常流程。
    当异常发生时,通常会:

    • 当前代码状态被保存
    • 代码执行被切换到预定义(自定义)的异常处理器函数
    • 根据情况,处理其也会从保存的代码状态重新开始执行代码,种植脚本执行,或从代码中另外的位置继续执行脚本

    注意:异常应该仅仅在错误情况下使用,而不应该用在一个指定的点跳转到代码的另一个位置

    过滤器

    过滤器用于验证和过滤来自非安全来源的数据
    测试、验证和过滤用户输入或自定义数据是任何Web应用程序的重要组成部分

    为什么使用过滤器?

    几乎所有的Web应用程序都以来外部的输入。这些数据通常来自用户或其他应用程序。通过使用过滤器,能够保证应用程序获取正确的输入类型。
    什么是外部数据?

    • 来自表单的输入数据
    • Cookies
    • Web services data
    • 服务器变量
    • 数据库查询结果

    函数和过滤器

    过滤变量,函数:

    • filter_var()通过一个指定的过滤器来过滤单一的变量
    • filter_var_array()通过相同或不同的顾虑其来过滤多个变量
    • filter_input获取一个输入变量,并对它进行过滤
    • filter_input_array获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤

    Validating 和 Sanitizing

    Validating过滤器:

    • 用于验证用户输入
    • 严格的格式规则
    • 成功则返回预期的类型,否则返回false

    Sanlitizing过滤器:

    • 用于允许或禁止字符串中指定的字符
    • 无数据格式规则
    • 始终返回字符串