首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使php web应用程序安全

使php web应用程序安全
EN

Stack Overflow用户
提问于 2013-08-09 23:44:42
回答 3查看 6.1K关注 0票数 1

为了保护我的项目不受攻击(例如: SQL注入) im使用下面的查询参数页(*.php?query=value):

代码语言:javascript
复制
$id=strip_tags($id);
$id=mysql_real_escape_string($id);    
if(is_numeric($id) && strlen($id)<=3) //id are numbers maximum of 3 digits
  • 除了这个im使用客户机(JavaScript)和服务器端(Php)验证,strip_tags()可以根据需要过滤数据。
  • 密码使用bcrypt()加密
  • 所有消息都使用mcrypt_ecb()加密
  • 只有当isset($_SESSION["id"]) ie登录时才能访问页面。
  • error_reporting(0);来隐藏错误。
  • $_POST而不是$_REQUEST
  • 每个输入的mysql_real_escape_string();

事实上,我的项目将被大学使用,并对安全问题感到紧张,因为回溯使它很容易渗透,所以我努力使它安全。(我知道这是个很大的问题,但任何帮助都会非常有用)但作为一个学生,我想知道我还缺少什么来确保安全?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-10 00:21:36

首先:

像瘟疫一样避免PHP的MySQL函数

使用PHP的MySQLi函数,而不是在上使用非常非常小的PDO代替。但是,在这两种方法中,MySQLi,特别是PDO功能,在安全性方面更好.是最好的选择,因为它们为您提供了准备语句的更高抽象,这大大增加了您的防范SQL注入攻击

PHP应用程序中的大多数SQL语句使用变量输入来确定SQL语句的结果。为了安全地将用户提供的输入传递给SQL语句,使用参数标记(?)准备一个语句。或表示变量输入的命名变量。执行准备语句时,可以将输入值绑定到参数标记。数据库引擎确保将每个输入值作为单个参数处理,从而防止对应用程序的SQL注入攻击。与通过PDO::exec()发出的语句相比,准备好的语句提供了性能优势,因为数据库管理系统为每个准备好的语句创建一个访问计划,如果随后重新发布语句,它可以重用。

此外,避免使用一些旧的折旧PHP函数。

接下来,通常情况下,如果您使用PHP或任何创建动态请求的语言,这就意味着用户在某种程度上输入,而且大多数情况下是与数据库的后续交互。web编程的规则1:在任何情况下都不要信任用户的输入。输入的所有内容都必须进行清理和验证,以避免出现安全问题。您可以使用PHP进行本机操作,但老实说,它需要大量的工作和对细节的大量关注--当然,这会增加您的开发时间。

如果这不是一次学术练习,或者是一次关于自我训练( 如果可以的话,尝试使用框架。 )的练习,那么它可能会在以后的过程中给你带来很多头痛,就像处理逃避、验证等问题的良好框架一样。这意味着,如果你去突击队和写你自己的代码没有框架:大多数,如果不是所有的功能,您将实现将为您完成,机会是做得更好的一个框架。

此外,它们还使PHP开发更加容易,并使occasionally,更有趣。当然,并非所有框架都是平等创建的,所有框架也存在安全问题。但是,这是你必须记住的事情,在任何时候,虔诚地保持自己的信息。

如果这是一次学术练习,或者是自学练习,请阅读以下内容:

为什么不使用PHP框架?

许多顶级的StackOverflow文章和Programmers.StackExchange帖子可以帮助您完成您的旅程。

首先,这里有几个:

(这篇文章更多地概述了大多数这些链接所讨论的内容)

阅读了您领域中的安全实践。它一直在进化。

如果您对框架感兴趣,这里有几个流行的框架可以激发您的兴趣:

  • Yii
  • CakePHP
  • 赞德
  • 塞福尼
  • 科哈纳 (强烈推荐)

但是,不管怎样-祝你好运!

票数 10
EN

Stack Overflow用户

发布于 2013-08-10 01:01:52

我建议使用OWASP网站来查看与网络安全相关的信息(甚至加入OWASP)。

OWASP剖面提供PHP相关信息

票数 3
EN

Stack Overflow用户

发布于 2014-06-18 04:30:15

使PHP应用程序安全是一个相当复杂的过程。在编写应用程序时,有很多事情要考虑,而SQL注入并不是唯一的威胁。

我建议参考以下有用的条款:

25个用于Sys管理员的PHP安全最佳实践

如何保护您的php应用程序?

PHP安全备忘单

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18157233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档