小编use*_*643的帖子

有人可以利用我的下面的反序列化代码

根据PHP.net手册unserialize(http://php.net/manual/en/function.unserialize.php)和几个谷歌搜索找到 - unserialize代码可以被利用.

我没有太多关于黑客如何利用unserialize代码的信息.我只是害怕,因为我正在使用来自外部用户输入的反序列化代码.

下面是我的代码,我想知道这段代码是否可以被利用:

<?php

if(filter_var($_GET['url'], FILTER_VALIDATE_URL)) {

    // $_GET['url'] = 'http://example.com/page/1.html'
    $html = file_get_contents($_GET['url']); 

    $doc = new DOMDocument();
    $encode = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");
    libxml_use_internal_errors(true);
    $doc->loadHTML($encode);
    libxml_clear_errors();

    $nodes = $doc->getElementsByTagName('title');
    $title = strtolower($nodes->item(0)->nodeValue);

    // storing in mysqli database
    // hiding mysql code.. 
    $serialize = serialize(['icon' => 'check', 'data' => $title]);

    // fetching from mysqli database.
    // hiding other mysql code..
    $row = $fetch->fetch_assoc();
    $unserialize = unserialize($row['title']);
}
Run Code Online (Sandbox Code Playgroud)

黑客可以制作"恶意标题"标签并提供他的URL来利用我的反序列化代码吗?

更新:我用的PDO是mysql,这不是问题.我担心的是来自外部网站 …

php serialization

6
推荐指数
1
解决办法
658
查看次数

imagecreatefromjpeg(): gd-jpeg: JPEG 库报告不可恢复的错误 - Laravel

我有以下 2 条路线:-

Route::get('resize/avatar', function() {
    $image = 'avatar.jpg';
    $target_filename_here = 'thumbnail_'.$image;
    $ffs = imagecreatefromjpeg($image);
    $size = getimagesize($image);
    $dst = imagecreatetruecolor(100,100);
    $dds = imagecopyresampled($dst,$ffs,0,0,0,0,100,100,$size[0],$size[1]);
    $dn = imagepng($dst,$target_filename_here); // adjust format as needed
    imagedestroy($ffs);
    imagedestroy($dst);
    if($dds) {
        return Redirect::to('color/');
    } else {
        return 'Failed to load the Profile Picture';
    }
});


Route::get('color/', function() {
    if(file_exists('thumbnail_avatar.jpg')) {
        $dest = imagecreatefrompng('transcript.png');
        $fn = imagecreatefromjpeg('thumbnail_avatar.jpg');
        imagecopy($dest, $fn, 550, 830, 0, 0, imagesx($fn), imagesy($fn));
        imagejpeg($dest,"test4.jpg",90);
        imagedestroy($dest);
        imagedestroy($fn);
        return HTML::image('test4.jpg');
    } else {
        return Redirect::to('resize/avatar');
    } …
Run Code Online (Sandbox Code Playgroud)

php php-gd laravel-4

4
推荐指数
1
解决办法
1万
查看次数

Golang中[]*Users和*[]Users的区别?

虽然我不得不将一些数据指向一个结构体,但我对Golang 结构体[]*Users*[]UsersGolang 结构体之间的区别感到困惑

我有以下结构

type Users struct {
    ID int
    Name string
}
Run Code Online (Sandbox Code Playgroud)

struct pointers go

4
推荐指数
1
解决办法
4859
查看次数

如果仅考虑图像,Laravel文件上传是否安全

Laravel基本上具有以下input类型的功能file.

// Determine if a file was uploaded
 Input::hasFile('filename');
// Access file properties
 Input::file('name')->getRealPath();
Input::file('name')->getClientOriginalName();
Input::file('name')->getClientOriginalExtension();
Input::file('name')->getSize();
Input::file('name')->getMimeType();
Run Code Online (Sandbox Code Playgroud)

如果我getClientOriginalExtension用来找到正确的图像扩展名,getSize限制文件上传大小和getMimeType检查图像的mimetype.

我安全吗?并且可以对功能有信心,它不会被黑客以任何方式利用.

考虑到一个事实,我将只上传图像.


更新:按照以下URL使用Core PHP安全地上传文件:

http://php.w3clan.com/tutorial/47/form-handling-secure-uploading

或者根据Laravel在规则中使用文件验证

$rule = [ 'name' => 'image' ];

php file-upload laravel-4

1
推荐指数
1
解决办法
5363
查看次数

标签 统计

php ×3

laravel-4 ×2

file-upload ×1

go ×1

php-gd ×1

pointers ×1

serialization ×1

struct ×1