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

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.  

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

 
 
 
  1.  

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

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

3. CSRF (跨站请求伪造)

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

 
 
 
  1. delete account 

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

 
 
 
  1.  lol :D 

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

4. 点击劫持

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

另一个例子是在