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

这是筛选数据并防止SQL注入和其他攻击的安全方法吗?

丰佐
2023-03-14
问题内容

我创建了两个简单的函数来过滤插入的数据,然后将其输入到mysql查询中。

对于formfields(我也使用正则表达式分别检查每个字段。

// Form filter
function filter($var) 
{

    // HTML is not allowed
    $var = strip_tags(trim($var));

    // Check magic quotes and stripslashes
    if(get_magic_quotes_gpc())
    { 
        $var = stripslashes($var);
}

    // Not using it right now, is it recommended?
    // $var = htmlentities($var, ENT_QUOTES);

    // Escape
    $var = mysql_real_escape_string($var);

    // Return    
    return $var; 
}

然后针对id(在URL中发送),我使用此过滤器:

// ID filter
function idfilter($idfilter)
{
// Delete everything except numbers
$idfilter = ereg_replace("[^0-9]", "", $idfilter);

// Round numbers
$idfilter = round($idfilter);

// Test if the input is indeed a number
if(!is_numeric($idfilter) || $idfilter % 1 != 0)
{
    $idfilter = 0;
}

// Filter using the formfilter (above)
return filter($idfilter);
}

是否有建议添加或删除这些简单功能?而且“安全”吗?


问题答案:

您正在使用不赞成使用的函数asmagic_quotesereg_*。为了防止Sql注入,您应该使用 准备好的语句
(我建议使用PDO),并且为了防止XSS,您应该在执行操作时使用strip_tags()。



 类似资料:
  • 本文向大家介绍Yii框架防止sql注入,xss攻击与csrf攻击的方法,包括了Yii框架防止sql注入,xss攻击与csrf攻击的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii框架防止sql注入,xss攻击与csrf攻击的方法。分享给大家供大家参考,具体如下: PHP中常用到的方法有: 调用: (必须放在接收数据之外) 注意: 表单提交值,为防止csrf攻击,控制器中需要加上:

  • 我在mybatis查询中使用“$”表示法: order参数可以是类似于“id desc”的东西,我需要担心这里的sql注入吗?我们知道mybatis使用,如果mybatis针对“select”语句调用,或者jdbc驱动程序实现不允许在一次调用中使用多个语句,那么sql注入是不可能的,对吗? 这是否足以检查参数有sql分隔符?

  • 问题内容: 因此,我们的应用程序是: 每个用户都必须登录 登录页面回发到服务器,并且如果授权用户返回SPA应用程序。 SPA应用程序完全是AJAX HTTPS 通常我们会发送一个cookie和一个cookie。令牌cookie值将作为x- header包含在任何AJAX帖子中,并且每次请求都将在服务器上验证所有内容。 由于SPA页面是在返回浏览器之前构建的,因此我们可以在其中嵌入我们想要的任何内容

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

  • 问题内容: 我为客户开发了一个网站,他们将在网上发布商品图片。网址为。有人尝试浏览通知我的产品和错误。 我还收到以下错误报告: 最后三个例子肯定是有人试图进入系统的,对吧? 如果我们将其转换为存储过程,是否会减少或消除插入攻击的风险? 问题答案: 例子:

  • 问题内容: 这是我的代码: 有人可以告诉我它是否安全或是否容易受到SQL Injection攻击或其他SQL攻击吗? 问题答案: 有人可以告诉我它是否安全或是否容易受到SQL Injection攻击或其他SQL攻击吗? 正如uri2x所说的,请参阅SQL注入。 防止SQL注入的最佳方法是使用准备好的语句。它们将数据(您的参数)与指令(SQL查询字符串)分开,并且不会为数据留下任何空间污染查询的结构