web安全面试题php,安全开发工程师面试必备之Web安全基础。

1.跨站脚本攻击(XSS)

跨站脚本攻击(Cross Site Script,简称 XSS),利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序

1.1 XSS 示例$input = $_GET["param"];

echo "

" . $input . "
";https://blog.maplemark.cn/test.php?param=这是一个测试!

https://blog.maplemark.cn/test.php?param=

1.2 XSS 分类反射型 XSS:简单地将用户输入的数据反射给浏览器

存储型 XSS:把用户输入的数据存储在服务器端

DOM Based XSS:修改页面 DOM 节点形成的 XSS

1.3 XSS 防御为 Cookie 设置 HttpOnly,避免 Cookie 被劫持泄露

对输入/输出进行检查,明确编码方式

2.跨站点请求伪造(CSRF)

跨站请求伪造(Cross-site request forgery,简称 CSRF), 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法

2.1 CSRF 示例在私有域构造页面Phttps://blog.maplemark.cn/csrf.html

其内容为

like?_=0faa0315ff95872d8b0f8da02e343ac7诱使目标用户访问页面P

如果你已经访问过 SF 网站,并且已经登录。可以看到在访问页面P之后,已经对 SF 文章进行点赞了

2.2 CSRF 防御增加验证码(简单有效)

检查请求来源是否合法

增加随机 token

3.SQL 注入

输入的字符串中注入 SQL 指令,若程序当中忽略了字符检查,导致恶意指令被执行而遭到破坏或入侵

3.1 SQL 注入示例$id = $_GET['id'];

$sql = "SELECT * FROM `user` WHERE `id`={$id}";

将传递参数改为1;DROP TABLE OrdersTable--

3.2 SQL 注入防御使用预编译语句绑定变量(最佳方式)

使用安全的存储过程(也可能存在注入问题)

检查输入数据的数据类型(可对抗注入)

数据库最小权限原则

4.应用层拒绝服务攻击

4.1 DDOS 简介

DDOS 又称为分布式拒绝服务,全称是 Distributed Denial of Service。DDOS 本是利用合理的请求造成资源过载,导致服务不可用

fbb16b9e503112370d8e1dfc1961c502.png

ddos

网络层 DDOS

伪造大量源 IP 地址,向服务器发送大量 SYN 包,因为源地址是伪造的,不会应答,大量消耗服务器资源(CPU 和内存)

应用层 DDOS

应用层 DDOS,不同于网络层 DDOS,由于发生在应用层,因此 TCP 三次握手已完成,连接已建立,发起攻击的 IP 地址都是真实的CC 攻击:对一些消耗资源较大的应用界面不断发起正常的请求,以消耗服务器端资源

限制请求频率:在应用中针对每个客户端做一个请求频率的限制

5.PHP 安全

5.1 文件包含漏洞

include、require、include_once、require_once,使用这4个函数包含文件,该文件将作为 PHP 代码执行,PHP 内核不会在意该包含的文件是什么类型

5.2 代码执行漏洞

危险函数exec、shell_exec、system可以直接执行系统命令。eval函数可以执行 PHP 代码

6.伪随机数和真随机数

6.1 伪随机数

通过一些数学算法生成的随机数,并非真正的随机数

6.2 真随机数

通过一些物理系统生成的随机数

6.3 安全随机数Linux

使用 /dev/random 或者 /dev/urandom 来生成随机数,只需读取即可PHP

若是支持 openSSL 扩展,可以直接使用函数来生成随机数openssl_random_pseudo_bytes ( int $length [, bool &$crypto_strong ] ) : string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值