你的PHP/Laravel网站是否足够安全?

开发 后端
要想让你的PHP/Laravel网站足够安,想要在这场漏洞之战中赢得胜利,最好的方法就是深入了解本文中的7点内容。

[[218964]]

1. SQL 注入

或许这是最知名的漏洞. 从根本上来说, 他允许网站攻击者注入 SQL 到你的代码中. 如果你的代码就想这样: 

  1. $post_id = $_POST['post_id']; 
  2.  
  3. $sql = "DELETE FROM posts WHERE user_id = 1 AND id = $post_id"
  4.  
  5. \DB::statement($sql);  

如果有人在 email 字段输入: 1 OR 1. SQL 语句将像以下这样: 

  1. $sql = "DELETE FROM posts WHERE user_id = 1 AND id = 1 OR 1"

基本上你在说的是 --- 请删除所有用户的所有帖子.

2. XSS (cross site scripting)

跨站脚本攻击类似于SQL注入.它会向HTML页面注入HTML/JavaScript代码.

想象一个类似于Google的,用户可以输入并进行搜索的页面,在搜索结果显示页面,如果你用如下的方式显示用户搜索的结果: 

  1. <?php echo 'You searched for: ' . $_GET['search_query']; ?> 

如果攻击者尝试输入类似如下的代码: 

  1. <script>alert('surprise!');</script> 

浏览器将会执行这句JavaScript 脚本,用户将会看到一个显示着"surprise!"的弹窗.

攻击者利用这个漏洞,可以窃取浏览器的cookie,强制用户跳转到其他网站,窃取用户的密码.什么?你的密码是123456?

3. CSRF (跨站请求伪造)

例如在你的网站上有用户可以用来删除账户的链接. 

  1. <a href="http://your-website.com/delete-account">delete account</a> 

猜测以下如果攻击者提交一个如下这样的评论会发生什么: 

  1. <img src=”http://your-website.com/delete-account”> lol :D 

用户将在查看此评论的时候删除他们的账号. 让我们继续发表评论.

4. 点击劫持

这种攻击类型试图让你点击你不想要的地方。例如通过在其他按钮顶部放置不可见的 Facebook like 按钮。

另一个例子是在 <iframe> 中打开 Facebook ,并将这个 iframe 放置在 JavaScript 代码中,所以无论何时你点击某个地方,你总是会点击到 Facebook 页面上的分享按钮。

查看示例

你也喜欢这个例子吗?

5. 上传文件到 public_html

这种攻击形式是,攻击者上传 .php 文件或者其他可执行文件到你的 public_html 目录。.

想象一下如果你的网站有图片上传功能,同时没有检测上传文件的类型。我仿佛看见一场上传风暴扑面而来...

6. ZIP 炸弹

一些网站允许用户上传 .zip 文档,然后进行解压缩和再处理。但这里存在一个大问题。

很有可能这个 .zip 文档大小仅有 42 KB,但在解压后会占用 4718592 GB 的空间。你可以把它想象成一颗原子弹。

样例文件

7. file_get_contents()

使用这个函数可以轻松的读取文件内容: 

  1. echo file_get_contents('https://some-website.com/friend-list.txt'); 

但是你如果让攻击者输入他想要的,他可以从你服务器进入的文件,例如: 

  1. echo file_get_contents('.env'); 

OR 

  1. echo file_get_contents('secret-code.php'); 

这个函数将会从你的服务器读取文件和展示内容给攻击者。

这个漏洞是很难找到的,就像皮卡丘在宠物小精灵之中一样难找。

总结 

想要在这场漏洞之战中赢得胜利,最好的方法就是深入了解它们。 

责任编辑:庞桂玉 来源: PHP技术大全
相关推荐

2013-08-21 09:20:15

敏捷方法敏捷开发云基础设施是

2022-06-26 06:36:37

物联网安全网络安全

2014-02-21 11:30:31

2015-01-21 09:15:44

2020-04-02 11:06:56

网站安全HTTPS加密

2009-11-18 13:20:07

PHP设计模式

2011-12-22 15:51:06

SSLVPN

2015-05-27 14:55:45

2012-04-12 11:28:04

2011-09-22 13:56:56

2013-06-05 10:44:20

2016-08-10 08:30:16

2015-07-06 09:43:21

BYOD企业风险管理移动办公

2024-02-21 20:46:48

C++编程volatile

2018-12-25 09:17:26

物联网法规物联网IOT

2021-11-02 19:01:41

WWWGrepHTML安全安全工具

2021-07-19 08:00:00

开源数据工具

2009-08-28 18:12:26

防火墙规则测试

2015-07-09 09:35:37

2021-04-09 08:17:55

数字化转型CEOCIO
点赞
收藏

51CTO技术栈公众号