首页 / 知识
关于php:如何防止在LAMP应用程序中进行SQL注入?
2023-04-14 09:41:00

How do you prevent SQL injection in LAMP applications?以下是开始对话的几种可能性: 第一个解决方案是次优的,因为如果要在SQL之外的其他任何情况下使用每个值,则需要取消转义每个值,例如在网页上输出。 第二种解决方法更有意义,但是手动转义每个值是一个痛苦。 我知道准备好的语句,但是我发现MySQLi很麻烦。另外,将查询与输入分离也令我感到担忧,因为尽管正确执行订单至关重要,但很容易犯错,从而将错误的数据写入错误的字段。 准备好的陈述是最好的答案。您进行测试是因为您可能会犯错误! 请参阅此问题。 正如@Rob Walker所说,参数化查询是最好的选择。如果您使用的是最新最好的PHP,则强烈建议您看一下PDO(PHP数据对象)。这是一个本机数据库抽象库,它支持各种数据库(当然包括MySQL)以及带有命名参数的准备好的语句。 我会使用准备好的语句。如果要使用准备好的语句,则可能要签出PHP的PDO函数。这不仅使您可以轻松地运行准备好的语句,而且还可以通过不调用以mysql_,mysqli_或pgsql_开头的函数来使数据库更加不可知。 PDO总有一天值得,但不仅如此。它是一种DBAL,(据说)它的优势是使供应商之间的切换更加容易。它并不是真正能够捕获SQL注入的对象。 无论如何,您希望转义和清理输入,使用准备好的语句可能是一个不错的选择(我赞成)。虽然我相信这要容易得多,例如通过使用过滤器。 我一直使用第一个解决方案,因为在99%的时间里, 实际上,我之所以一直这样做是因为我的所有站点默认情况下都启用了magic_quotes设置,并且一旦使用这两种解决方案之一编写了很多代码,就需要花费很多时间。努力换成另一个。 |
最新内容
相关内容
linux命令行不能输入?
linux命令行不能输入?,工作,系统,电脑,服务,命令,名字,首次,百度,管理,第一,linux中的命令如何输入linux常用命令:pwd命令该命令的英文解释为prlinux打命令输入密码?
linux打命令输入密码?,密码,系统,状态,代码,管理,标的,位置,地址,名称,命令,Linux用户命令行登录时输入密码,你看不见输入的状态,连点都不显示linux输入命令后乱码?
linux输入命令后乱码?,系统,乱码,中文,情况,环境,地方,名称,字符集,服务器,字符,linux中文显示乱码在命令行输入”dpkg-reconfigure locales”linux输入命令无反应?
linux输入命令无反应?,密码,系统,数据,命令,工具,时报,信息,检测,文件,反应,LINUX能连,但是命令输入后没反应,什么原因?原因总结:i18n语言配置linux命令行输入引号?
linux命令行输入引号?,系统,密码,命令,电脑,标准,地方,环境,管理,名字,表示,问一个Linux命令\,这个引号中的是什么意思?.反单引号,表示它所包含怎么输入linux命令?
怎么输入linux命令?,系统,工具,命令,电脑,工作,终端,数字,时间,软件,分行,linux如何进入命令行打开linux系统,在linux的桌面的空白处右击。在弹linux输入命令删除键?
linux输入命令删除键?,名称,系统,档案,命令,文件,目录,不了,数据,文件夹,终端,linux删除命令是什么Linux的文件和目录的删除命令有:rm、rmdir、linux多个命令输入?
linux多个命令输入?,系统,工具,工作,命令,电脑,地址,信息,软件,服务,连续,Linux多台主机批量执行命令执行命令(记得先对doCommand.s h增加执行linux命令重复输入?
linux命令重复输入?,软件,信息,状态,标的,工具,系统,命令,终端,模式,编辑,在linux命令行模式下,打字打多了,如何一次删除一行刚刚输入的命令?1linux命令空格转义?
linux命令空格转义?,系统,密码,名称,管理,数据,标准,电脑,空格,命令,终端,linux中,\|是什么意思?Linux中的|就是生活中管道一样,把数据处理后,linux初始化硬盘命令?
linux初始化硬盘命令?,系统,工作,设备,工具,信息,基础,地址,电脑,命令,数据,linux基础命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux连续输入命令?
linux连续输入命令?,系统,工作,地址,连续,命令,信息,电脑,基础,标准,状态,linux中的命令如何输入1、ctrl+alt+f1 (默认可以是F1到F6,F7是图形界