zoukankan      html  css  js  c++  java
  • PHP入门【一】$_SERVER

    这几天要个同事写php的程序,就开始学习了PHP ,基础语法不用说了语言都是基本相通的,只是有若类型和强类型的区别(声明数据类型)

    把现在看到的感觉有用的记录一下。

    $_SERVER['PHP_SELF'] 返回当前执行脚本的文件名。
    $_SERVER['GATEWAY_INTERFACE']    返回服务器使用的 CGI 规范的版本。
    $_SERVER['SERVER_ADDR']    返回当前运行脚本所在的服务器的 IP 地址。
    $_SERVER['SERVER_NAME']    返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。
    $_SERVER['SERVER_SOFTWARE']    返回服务器标识字符串(比如 Apache/2.2.24)。
    $_SERVER['SERVER_PROTOCOL']    返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
    $_SERVER['REQUEST_METHOD']    返回访问页面使用的请求方法(例如 POST)。
    $_SERVER['REQUEST_TIME']    返回请求开始时的时间戳(例如 1577687494)。
    $_SERVER['QUERY_STRING']    返回查询字符串,如果是通过查询字符串访问此页面。
    $_SERVER['HTTP_ACCEPT']    返回来自当前请求的请求头。
    $_SERVER['HTTP_ACCEPT_CHARSET']    返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
    $_SERVER['HTTP_HOST']    返回来自当前请求的 Host 头。
    $_SERVER['HTTP_REFERER']    返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
    $_SERVER['HTTPS']    是否通过安全 HTTP 协议查询脚本。
    $_SERVER['REMOTE_ADDR']    返回浏览当前页面的用户的 IP 地址。
    $_SERVER['REMOTE_HOST']    返回浏览当前页面的用户的主机名。
    $_SERVER['REMOTE_PORT']    返回用户机器上连接到 Web 服务器所使用的端口号。
    $_SERVER['SCRIPT_FILENAME']    返回当前执行脚本的绝对路径。
    $_SERVER['SERVER_ADMIN']    该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
    $_SERVER['SERVER_PORT']    Web 服务器使用的端口。默认值为 “80”。
    $_SERVER['SERVER_SIGNATURE']    返回服务器版本和虚拟主机名。
    $_SERVER['PATH_TRANSLATED']    当前脚本所在文件系统(非文档根目录)的基本路径。
    $_SERVER['SCRIPT_NAME']    返回当前脚本的路径。
    $_SERVER['SCRIPT_URI']    返回当前页面的 URI。

    在使用$_SERVER["PHP_SELF"]很容易攻击者造成反射型XSS,

    <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

    正常会转化为:

    <form method="post" action="test_form.php">

    黑客在URL中输入:

    http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

    这样PHP获取会变成:

    <form method="post" action="test_form.php"/><script>alert('hacked')</script>

    解决办法:

    使用

    htmlspecialchars()

    什么是 htmlspecialchars() 函数?
    htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 &lt; 和 &gt; 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。

    在用户提交该表单时,我们还要做两件事:

    1. (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
    2. (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠()
  • 相关阅读:
    User Get 'Access Denied' with Excel Service WebPart
    How To Search and Restore files from Site Collection Recycle Bin
    How To Collect ULS Log from SharePoint Farm
    How To Restart timer service on all servers in farm
    How to Operate SharePoint User Alerts with PowerShell
    How to get Timer Job History
    Synchronization Service Manager
    SharePoint 2007 Full Text Searching PowerShell and CS file content with SharePoint Search
    0x80040E14 Caused by Max Url Length bug
    SharePoint 2007 User Re-created in AD with new SID issue on MySite
  • 原文地址:https://www.cnblogs.com/sevck/p/6126680.html
Copyright © 2011-2022 走看看