使php web应用程序安全
为了保护我的项目免受攻击(例如:SQL注入),我使用下面的 参数页(*.php?query=value):使php web应用程序安全,php,security,Php,Security,为了保护我的项目免受攻击(例如:SQL注入),我使用下面的 参数页(*.php?query=value): $id=strip\u标签($id); $id=mysql\u real\u escape\u字符串($id); 如果(是数字($id)&&strlen($id)首先: 使用PHP的MySQLi函数来代替非常、非常小的或。但是,在这两种函数中,PDO是最好的选择,因为它们为您提供了更高的抽象性准备语句,从而大大提高了您的: PHP应用程序中的大多数SQL语句都使用变量输入来 确定SQL语
$id=strip\u标签($id);
$id=mysql\u real\u escape\u字符串($id);
如果(是数字($id)&&strlen($id)首先:
使用PHP的MySQLi函数来代替非常、非常小的或。但是,在这两种函数中,PDO是最好的选择,因为它们为您提供了更高的抽象性准备语句,从而大大提高了您的:
PHP应用程序中的大多数SQL语句都使用变量输入来
确定SQL语句的结果。若要传递用户提供的
安全地输入SQL语句,使用参数准备语句
表示变量输入的标记(?)或命名变量。当
执行准备好的语句,将输入值绑定到
参数标记。数据库引擎确保每个输入值
作为单个参数处理,防止SQL注入攻击
根据您的申请。与通过
PDO::exec(),准备好的语句提供了性能优势,因为
数据库管理系统为每个数据库创建一个访问计划
准备好的语句,如果重新发布该语句,它可以重用
后来
另外,避免使用一些旧的折旧PHP函数
接下来,一般来说,如果您使用的是PHP或任何创建动态请求的语言,这意味着用户在某种程度上的输入,并且通常是与数据库的后续交互。web编程规则1:在任何情况下,决不信任用户输入。总之。输入的所有内容都必须经过清理、验证为了避免安全问题,你可以用PHP本机实现这一点,但老实说,这需要大量的工作和对细节的关注——当然,这会延长你的开发时间
如果这不是一个学术练习或是一个自我训练的练习——它可能会让你以后省去很多麻烦,就像好的框架可以处理越狱、验证之类的事情一样。这意味着,如果你去突击队,在没有框架的情况下编写自己的代码:即使不是所有的功能,也是大部分的功能实现将为您完成,并且有机会在一个框架中做得更好
另外,它们使PHP开发变得更容易,偶尔,有趣。当然,并非所有框架都是平等创建的,而且所有框架也都有安全问题。但是,这是您必须牢记的一点,并始终以宗教的方式告知自己
如果这是一项学术练习或自学练习,请阅读以下内容:
许多顶尖的PHP帖子和程序员。StackExchange帖子可以帮助您完成旅程
以下是一些开始:
(这篇文章更多的是概述了这些链接讨论的内容)
阅读您所在领域的安全实践。它不断发展。
如果您对框架感兴趣,这里有一些流行的框架可以激发您的兴趣:
- (强烈推荐)
但是,不管怎样,祝你好运!首先:
使用PHP的MySQLi函数来代替非常、非常小的或。但是,在这两种函数中,PDO是最好的选择,因为它们为您提供了更高的抽象性准备语句,从而大大提高了您的:
PHP应用程序中的大多数SQL语句都使用变量输入来
确定SQL语句的结果。若要传递用户提供的
安全地输入SQL语句,使用参数准备语句
表示变量输入的标记(?)或命名变量。当
执行准备好的语句,将输入值绑定到
参数标记。数据库引擎确保每个输入值
作为单个参数处理,防止SQL注入攻击
根据您的申请。与通过
PDO::exec(),准备好的语句提供了性能优势,因为
数据库管理系统为每个数据库创建一个访问计划
准备好的语句,如果重新发布该语句,它可以重用
后来
另外,避免使用一些旧的折旧PHP函数
接下来,一般来说,如果您使用的是PHP或任何创建动态请求的语言,这意味着用户在某种程度上的输入,并且通常是与数据库的后续交互。web编程规则1:在任何情况下,决不信任用户输入。总之。输入的所有内容都必须经过清理、验证为了避免安全问题,你可以用PHP本机实现这一点,但老实说,这需要大量的工作和对细节的关注——当然,这会延长你的开发时间
如果这不是一个学术练习或是一个处理自我训练的练习,它可能会在以后的道路上为您节省许多麻烦,因为好的框架可以处理逃逸、验证等问题。这意味着如果您去commando并编写自己的代码而不使用框架:大多数,如果不是所有的功能,您将成为实现将为您完成,并且有机会在一个框架中做得更好
另外,它们使PHP开发变得更容易,偶尔,有趣。当然,并非所有框架都是平等创建的,而且所有框架也都有安全问题。但是,这是您必须牢记的一点,并始终以宗教的方式告知自己
如果这是一项学术练习或自学练习,请阅读以下内容:
许多顶尖的PHP帖子和程序员。StackExchange帖子可以帮助您完成旅程
$id=strip_tags($id);
$id=mysql_real_escape_string($id);
if(is_numeric($id) && strlen($id)<=3) //id are numbers maximum of 3 digits