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() 函数)删除用户输入数据中的反斜杠(\)
时间: 2024-08-25 20:21:44

PHP入门【一】$_SERVER的相关文章

微信公众平台开发入门教程

在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用 启用微信公众平台开发模式 基础接口消息及事件 微信公众平台PHP SDK 微信公众平台开发模式原理 开发天气预报功能 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+M

PHP入门part1

有人说php是世界上最好的语言,那它好在哪呢. 它是开源自由的软件,能够在所有的操作平台上稳定的运行,入门比较简单.对于我这种没学过什么计算机语言的人是最好的起步点. PHP现在的含义:Hypetext Perprocessor 超文本预处理语言 那就先学习它最最基础的知识. php标记 php有四个标记,这里只推荐一个其他三个不推荐. <?php ?> php常见的输出语句 print() 简单输出语句,可以输出字符串,变量.表达式等单项的值!(不能输出数组.对象等复杂数据类型) echo

PHP入门培训教程 PHP变量的使用

PHP入门培训教程 PHP变量的使用 很多朋友在编写PHP程序的时候有时候对变量总有着不能确定的问题,而且也有很多问题就是因为变量的处理不当所造成的.这里兄弟连PHP培训小编,就PHP变量系统说一下. PHP的变量分为全局变量与局部变量. 何为全局变量? 学过C/JAVA/C++之类的朋友一定了解main(){}内声明的变量所达的区域了~,而PHP为解释性语句并非 编译语言,我们也知道PHP不存在main(){}主体,从何声明?其实PHP页面本身就是个main(){}只要是在页面内 而非在函数内

phpexcel入门

最近接触了一下PHP.发现入门倒还蛮容易的,毕竟和C++很像.但是入门的内容无非是一些最简单的基础,真正的难点在于PHP的很多拓展. 这几天概要的学习了一下PHPExcel,之所以说自己是概要的学习,是因为主要是以看网上的例子作为学习的主线,结合官方pdf文档. 下面就简要的对于近期的学习做一个小结. 1. 结构: PHPExcel的构建具有很清晰的结构.明确了这个点,对于接下来的学习至关重要. 工作簿: 官方文档中叫workbook.对应PHPExcel中的PHPExcel类. 工作表: wo

入门指引 - PHP手册笔记

原文:入门指引 - PHP手册笔记 曾经简单的学习过PHP,看的是<PHP和MySQL Web开发>,还有万能的搜索引擎的帮助.这次准备系统的学习一下,参考资料是PHP Manual. PHP能做什么 PHP主要用于服务端的脚本程序,但PHP的功能远不局限于此.PHP主要用于以下三个领域: 服务端脚本 命令行脚本 编写桌面应用程序(PHP-GTK) 实用的脚本 $_SERVER是一个特殊的PHP保留变量,它包含了web服务器提供的所有信息,被称为超全局变量.可以通过$_SERVER['HTTP

PHP-Manual的学习----【入门指引】

2017年6月27日17:03:53 笔记:简介    PHP是什么?    PHP能做什么?1.PHP("PHP: Hypertext Preprocessor",超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发. 2.举例:<html>    <head>        <title>Example</title>    </head>    <b

转载-Web API 入门

An Introduction to ASP.NET Web API 目前感觉最好的Web API入门教程 HTTP状态码 Web API 强势入门指南 Install Mongodb Getting Started with ASP.NET Web API 2 下面的转自:http://www.cnblogs.com/developersupport/p/aspnet-webapi.html Web API是一个比较宽泛的概念.这里我们提到Web API特指ASP.NET Web API. 这

zabbix的搭建与入门

一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. Zabbix 的运行架构如下图所示: 1.1 组件 zabbix 由以下几个组件部分构成: 1) Zabbix Server: 负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行: 2) Database Stor

安全性测试入门 (三):CSRF 跨站请求伪造攻击和防御

安全性测试入门 (三):CSRF 跨站请求伪造攻击和防御 本篇继续对于安全性测试话题,结合DVWA进行研习. CSRF(Cross-site request forgery):跨站请求伪造 1. 跨站请求伪造攻击 CSRF则通过伪装成受信任用户的请求来利用受信任的网站,诱使用户使用攻击性网站,从而达到直接劫持用户会话的目的. 由于现在的主流浏览器比如火狐和谷歌,都倾向于使用单个进程来管理用户会话(比如我们在FF和Chrome中,当要访问一个新页面时,通常是通过新增浏览器页面来达到的,而不是新开一