当前位置: 首页 > 面试题库 >

如何使用Perl的DBI防止SQL注入攻击?

锺离飞飙
2023-03-14
问题内容

在将输入数据放入MySQL数据库之前,我可以在Perl中使用该功能来清理输入吗?我不太了解正则表达式,所以在我做自己的功能之前,我想知道是否已经有一个正则表达式。


问题答案:

清理要插入数据库的数据的正确方法是对所有要插入SQL字符串的变量使用占位符。换句话说,永远不要这样做:

my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";

而是使用?占位符:

my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";

然后在执行查询时传递要替换的变量:

my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );

您可以将这些操作与某些DBI便捷方法结合使用。上面也可以这样写:

$dbh->do( $sql, undef, $bar, $baz );

有关更多信息,请参见DBI文档。



 类似资料:
  • 问题内容: 构建我的第一个Web应用程序,并希望更好地理解SQL注入(https://github.com/astaxie/build-web- application-with- golang/blob/master/en/eBook/09.4.md )。 从始终使用’database / sql’库和使用’构造查询可以得到多少保护?而不是容纳字符串?在这种情况下,我仍然需要担心哪种SQL注入攻

  • 问题内容: 准备好的语句如何帮助我们防止SQL注入攻击? 维基百科说: 准备好的语句可以抵御SQL注入,因为稍后需要使用其他协议传输的参数值不需要正确地转义。如果原始语句模板不是从外部输入派生的,则不会发生SQL注入。 我不太清楚原因。用简单的英语和一些例子,简单的解释是什么? 问题答案: 这个想法很简单-查询和数据被发送到数据库服务器 分开 。 就这样。 SQL注入问题的根源在于 代码和数据 的

  • 本文向大家介绍如何防范SQL注入式攻击?相关面试题,主要包含被问及如何防范SQL注入式攻击?时的应答技巧和注意事项,需要的朋友参考一下 好在要防止ASP.NET应用被SQL注入式攻击闯入并不是一件特别困难的事情,只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容可以按多种方式进行。 ⑴ 对于动态构造SQL查询的场合,可以使用下面的技术: 第一:替换单引号,即把

  • 本文向大家介绍使用Python防止SQL注入攻击的实现示例,包括了使用Python防止SQL注入攻击的实现示例的使用技巧和注意事项,需要的朋友参考一下 文章背景 每隔几年,开放式Web应用程序安全项目就会对最关键的Web应用程序安全风险进行排名。自第一次报告以来,注入风险高居其位!在所有注入类型中,SQL注入是最常见的攻击手段之一,而且是最危险的。由于Python是世界上最流行的编程语言之一,因此

  • 问题内容: 我必须在我的java程序中添加一条语句以更新数据库表: 我听说可以通过SQL注入来利用此漏洞,例如: 我的程序具有Java GUI,并且从中检索所有名称,地址和电子邮件值。我想知道黑客如何将以下代码()添加到我的插入语句中,以及如何防止这种情况发生。 问题答案: 您需要使用PreparedStatement。例如 这样可以防止注入攻击。 黑客将其放入其中的方式是,如果您要插入的字符串来

  • 注意:但凡是sql注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成sql语句的一部分,对于用户输入的内容或传递的参数,我们应该要时刻保持警惕,这是安全领域里的【外部数据不可信任】的原则,纵观web安全领域的各种攻击方式,大多数都是因为开发者违反了这个原则而导致的,所以自然能想到,就是变量的检测、过滤、验证下手,确保变量是开发者所预想的。 1、检