PHP考核

  1. 请写出在 HTML 文档中,用于创建一个一级标题和添加一个普通段落的两个主要标签
1
2
<h1>一级标题</h1>
<p>普通段落</p>
  1. HTML 中,用于创建一个超链接的标签是什么?并说明用于指定链接目标地址的属性名称
1
<a herf="www.xxx.com">文本链接</a>
  1. HTML 表单中,用于创建一个文本输入框的标签和属性组合是什么?
1
<input type="text" name="username">
  1. 在 HTML 中,用于插入图片的标签是什么?并说明用于指定图片文件路径的属性名称
1
<img src="xxx/xxx/image.png" alt="xxx(用于图片描述)">
  1. 请写出用于创建无序列表有序列表的两个不同标签
1
2
3
4
5
6
7
8
9
10
11
<!-- 无序列表 --->
<ul>
<li>第一项</li>
<li>第二项</li>
</ul>

<!-- 无序列表 --->
<ol>
<li>第一项</li>
<li>第二项</li>
</ol>
  1. HTML 文档被分为两个主要部分:头部(Head)和主体(Body)。哪一部分包含了用户在浏览器中看到的所有内容?
  • 用户在浏览器中看到的内容包含在Body部分
  1. 在一个 HTML <form> 标签中,有两个至关重要的属性用于控制数据如何提交到服务器。请说出这两个属性的名称,并解释它们的作用
1
2
3
<form action="/submit" method="POST">
<!-- 表单内容 --->
</form>
  • action属性:规定当提交表单时向何处发送表单数据。
  • method属性:规定用于发送表单数据的 HTTP 方法。
  1. 在表单提交中,请详细解释使用 method="GET"method="POST" 两种方式的主要区别,特别是关于数据可见性数据量限制方面

    GET方法 POST方法
    数据可见性 数据跟随在URL之后,在地址栏可见 数据包含在请求体之中,不可见
    数据量限制 受URL长度限制,通常是2048字符 没有具体限制,可以发送大量字符
    安全性 因为是暴露在URL中的,所以安全性较低 不显示在URL中,所以较为安全
    是否进入缓存 是,可以加入书签 否,不能加入数书签
    用途 获取数据,如搜索、筛选 提交数据,如登录、上传

CSS

  1. CSS 在 Web 页面中主要负责哪部分内容?
  • 控制文本颜色、大小、字体种类等。
  • 设置背景颜色、背景图片等。
  • 控制不同元素的位置、大小、不同形状等。
  • 创建动画或者过渡效果。
  • 实现响应式设计。
  1. 请写出使用 CSS 将一个段落(<p> 标签)的文字颜色设置为蓝色的简单 CSS 规则
1
2
3
4
5
6
7
8
9
<style>
.fontsColor {
color: blue;
}
</style>

<body>
<p class="fontsColor">文字颜色</p>
</body>
  1. 了使用英文颜色名称(如 red),CSS 中最常用且精确的颜色表示方法是哪种进制表示法?
  • CSS 中最常用且精确的颜色表示方法是十六进制表示法

JavaScript

  1. 在 JavaScript 中,用于在浏览器控制台输出一条消息的最常用函数是什么?
1
console.log("消息内容");
  1. 请写出在现代 JavaScript 中,用于声明一个可变变量的关键字
1
let a = "值";
1
var a = "值";
  1. 在浏览器前端,用于弹出一个带有确定按钮的警告框的内置函数是什么?
1
alert("这是一个警告信息");
  1. JavaScript 通过哪个内置对象来访问和操作 HTML 文档中的所有元素和内容?
  • JavaScript通过Document对象(DOM)来访问和操作 HTML 文档中的所有元素和内容。
  1. 在 JavaScript 中,"5"5 在数据类型上有什么区别?请说出这两种类型分别是什么?
  • "5"是字符串类型(String)。
  • 5是数字类型(Number)。
  1. 请解释 JavaScript 中严格相等运算符 ===相等运算符 == 的主要区别。哪一个通常在编程中被推荐使用?
  • ==只比较值,会自动进行类型转换。
  • ===比较值和类型,不会进行类型转换。
  • 推荐使用===因为他更加严格,可以避免因为类型导致的意外结果。

PHP

  1. PHP 代码是在客户端的浏览器中运行,还是在服务器端运行?
  • PHP代码实在服务端运行。
  1. PHP 代码块必须以什么特殊的标记开始和结束?请写出这两个标记
1
2
3
<?php //开始标记

?>//结束标记
  1. 请写出 PHP 中用于向浏览器输出字符串(例如 "Hello World!")的最常用函数或语句
1
echo "Hello World!";
  1. 在 PHP 中,所有变量名必须以哪个特殊符号开头?
  • 所有变量名必须以$开头。
  1. 在 PHP 中,用于将两个字符串连接起来的运算符是什么?
  • 将两个字符串连接起来的运算符.
  1. PHP 最常使用哪两个全局超变量来分别接收 HTTP GETPOST 请求提交的数据?
  • GET请求$_GET
  • POST请求$_POST
  1. PHP 是如何实现会话(Session)管理的?请描述当用户首次访问时,PHP 如何在服务器端和客户端之间建立和维持会话状态?
  • 用户首次访问时,PHP生成唯一的Session ID。
  • Session ID通过Cookie发送给客户端。
  • 服务器存储会话数据文件。
  • 后续通过请求Session ID识别用户
  1. 请解释 PHP 中弱类型的含义。在进行算术运算时,这种弱类型可能导致什么意外的结果?
  • PHP会自动进行类型转换

  • 意外的结果:

    1
    "5abc" + 2 = 7; // 字符串呗转换为数字5
  1. 请说明 PHP 代码中常见的 includerequire 语句的作用。从安全角度看,当这些语句中的文件路径可被用户控制时,可能引发什么严重的安全漏洞?
  • 作用:包含并执行外部文件。
  • 漏洞:本地文件包含漏洞。
  1. 从安全角度,当接收用户通过 $_GET$_POST 提交的数据时,为什么总是需要对这些数据进行过滤和验证?请举出一个如果不过滤可能引发的安全漏洞名称
  • 原因:防止恶意输入导致安全漏洞。
  • 漏洞名称:SQL注入。
  1. 当使用 require 语句包含一个文件时,如果目标文件不存在,程序会继续执行还是终止?(请说明 PHP 的处理方式)
  • PHP程序会终止执行。
  1. 在 PHP 中处理文件上传时,如何彻底避免因文件类型检查不严格和文件名可控而导致的远程代码执行 (RCE) 漏洞?请至少说出两种关键的防御措施
  • 白名单验证文件类型。
  • 重命名上传文件。
  1. 请描述 PHP 反序列化漏洞的攻击原理。攻击者通常需要利用 PHP 哪种机制和哪种数据类型才能在反序列化过程中触发任意代码执行
  • 原理:使用__wakeup()__destruct()这一类的魔术方法。
  • 触发条件:可控的序列化数据被反序列化。
  1. 请区分 本地文件包含 (LFI)远程文件包含 (RFI) 漏洞的本质区别
  • 本地文件包含:包含服务器本地文件。
  • 远程文件包含:包含远程服务器文件。
  1. 在 PHP 配置中,哪个关键设置必须关闭才能有效阻止 RFI 攻击?
  • 关闭allow_url_include设置
  1. 当比较哈希值时,哪些宽松的比较运算符可能被攻击者利用来绕过检查?
  • ==!=可能会出现安全问题。
  • 可以使用hash_equqls()
  1. 请解释 会话固定 攻击的原理。为防止该攻击,PHP 应用在用户成功登录后应该执行哪个关键的安全操作?
  • 原理:攻击者固定Session ID。
  • 措施:登陆后重新生成Session ID。
  1. 请说出在 php.ini 配置文件中,哪个设置的不安全配置会直接增加 Web 应用信息泄露攻击的风险?(提示:报错)
1
display_errors = On
  1. 从防御角度看,请解释最小权限原则在数据库安全中的重要性
  • 数据库用户只拥有必要的最小权限,大大限制了攻击影响的范围。
  1. 请解释 “永不信任用户输入” 的安全原则
  • 所有用户的输入都视为不可信,必须要经过严格的验证和过滤。