ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

php – 清理正在插入WordPress MySQL数据库的URL

2019-08-28 12:16:39  阅读:225  来源: 互联网

标签:php mysql wordpress sanitization mysql-real-escape-string


我正在为Wordpress编写一个插件,我有自己的自定义表来存储从远程API中提取的相关数据.我需要存储的一个元素是URL,它是我数据库中的TEXT字段.

由于我已经看到很多评论说不要在Wordpress插件中使用标准的mysql_或mysqli_函数,我想知道在插入之前逃避URL的最佳方法是什么?是否足够使用esc_url()还是我之前应该做的其他事情?

    case "Create":
    {
        $tag = $_POST['product_tag'];
        $name = $_POST['product_name'];
        $asin = $_POST['product_id'];

        $response = getPrice("com", $asin);

        $result = $wpdb->insert( $table_name, array(
            'tag' => $tag,
            'name' => $name,
            'asin' => $asin,
            'price' => $response['price'],
            'url' => esc_url($response['url'])
        ));

        if ($result !== FALSE)
            echo "Successfully inserted new Amazon Product.";
        else
            echo "An Error occurred.";

        break;
    }

解决方法:

通常,您只需在数据库中按原样插入URL,并在呈现时仅考虑安全问题.当然,这假设你正在做的事情就像你在这里你已明确调用插入函数,其中数据作为关联数组发送.

真正的风险是人们绕过WPDB并直接插入内容,而且通常使用字符串连接很糟糕.

显示这些值时应调用esc_url.由于您可能会不时更改允许的URL,限制它们或在需求发生变化时将其打开,因此最好将它们保留在数据库中,并根据具体情况进行准备.

标签:php,mysql,wordpress,sanitization,mysql-real-escape-string
来源: https://codeday.me/bug/20190828/1751296.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有