襄阳做网站,襄阳网站设计,襄阳网站开发,微信小程序开发,网站设计制作,专业建站公司

当前位置:

thinkphp6防止图片被调用

常见问题

1856

文章来源(hbsjsd.cn)湖北高端网站定制开发公司-速建时代

在ThinkPHP6中,可以使用URL签名、防盗链等方法来防止图片被非法调用。下面是一种简单实现的方法:

  1. 在config目录下的app.php文件中,找到'url_common_param'参数,将其修改为如下形式:

    'url_common_param' => true,

    这样会在URL中为每个生成的URL添加一个唯一的签名参数。

  2. 在控制器方法中生成图片URL时,可以使用url函数生成带签名参数的URL,例如:

    $imageUrl = url('index/index/image', ['id' => $id, 'sign' => true]);

    这样生成的URL会在末尾添加一个sign参数。

  3. 在访问图片的控制器方法中,可以验证签名参数是否正确,如果不正确则返回错误信息或者直接输出空白图片。

例如,可以在Index控制器的image方法中进行验证:

public function image($id, $sign)
{
    // 根据$id获取图片路径等相关信息

    // 根据生成的sign验证是否合法
    if (!$this->checkSign($id, $sign)) {
        // 非法访问,返回错误信息或输出空白图片
    }

    // 输出图片
    // ...
}

private function checkSign($id, $sign)
{
    // 根据$id生成签名
    $validSign = md5($id . 'your_secret_key'); // your_secret_key需要替换成你自己的密钥

    // 验证签名是否一致
    return $sign === $validSign;
}

在checkSign方法中,根据自己的需求生成合法的签名,然后与传入的签名进行比较,如果一致则代表请求合法,否则代表非法访问。

通过以上步骤,就可以在ThinkPHP6中实现防止图片被调用的功能。当有人直接访问图片URL时,会要求带上正确的签名参数,否则无法正常获取到图片。这样可以在一定程度上保护图片资源的安全。


[声明]原创不易,请转发者备注下文章来源(hbsjsd.cn)【速建时代】。

速建时代高端网站定制开发回到顶部
站内SEO关键词搜索