小编Sim*_*mon的帖子

完整安全图像上载脚本

我不知道这是否会发生,但我会尝试一下.

过去一小时,我研究了图像上传安全性.我了解到有很多功能可以测试上传.

在我的项目中,我需要安全上传图片.也可能有相当大的数量,并且可能需要大量带宽,因此购买API不是一种选择.

所以我决定获得一个完整的PHP脚本,用于真正的安全图像上传.我也认为它对许多人有帮助,因为找不到真正安全的人是不可能的.但我不是在PHP专家,所以它真的头疼,我添加一些功能,所以我会问这个社会的帮助来创建真正安全的图片上传的一个完整的脚本.

关于它的真正伟大的主题在这里(但是,它们只是告诉我们需要做什么,但不是如何做到这一点,正如我所说我不是PHP的主人,所以我无法做到这一切由我自己): PHP图片上传安全检查清单 https://security.stackexchange.com/questions/32852/risks-of-a-php-image-upload-form

总之,他们告诉这是安全图像上传所需要的(我将从上面的页面引用):

  • 使用.httaccess禁止PHP在上传文件夹中运行.
  • 如果文件名包含字符串"php",则不允许上传.
  • 仅允许扩展名:jpg,jpeg,gif和png.
  • 仅允许图像文件类型.
  • 禁止具有两种文件类型的图像.
  • 更改图像名称.上传到子目录而不是根目录.

也:

  • 使用GD(或Imagick)重新处理图像并保存处理后的图像.所有其他人都对黑客来说很有趣"
  • 正如rr指出的那样,使用move_uploaded_file()进行任何上传"
  • 顺便说一句,你想要对你的上传文件夹非常严格.那些地方是许多漏洞
    发生的黑暗角落之一.这适用于任何类型的上载和任何编程
    语言/服务器.检查
    https://www.owasp.org/index.php/Unrestricted_File_Upload
  • 第1级:检查扩展名(扩展名文件以)结尾
  • 第2级:检查MIME类型($ file_info = getimagesize($ _ FILES ['image_file']; $ file_mime = $ file_info ['mime'];)
  • 级别3:读取前100个字节并检查它们是否具有以下范围内的任何字节:ASCII 0-8,12-31(十进制).
  • 级别4:检查标题中的幻数(文件的前10-20个字节).你可以在这里找到一些文件头字节:http:
    //en.wikipedia.org/wiki/Magic_number_%28programming%29#Examples
  • 您可能还想在$ _FILES ['my_files'] ['tmp_name']上运行"is_uploaded_file".请参见
    http://php.net/manual/en/function.is-uploaded-file.php

这是它的重要组成部分,但仍然不是全部.(如果您知道更多可能有助于使上传更安全的内容,请分享.)

这就是我们现在所做的事情

  • 主要PHP:

    function uploadFile ($file_field = null, $check_image = false, $random_name = false) {
    
    //Config Section    
    //Set file upload path
    $path = 'uploads/'; //with trailing slash
    //Set max file size in bytes
    $max_size …
    Run Code Online (Sandbox Code Playgroud)

php security upload file-upload image

43
推荐指数
2
解决办法
5万
查看次数

使用javascript按值获取选择选项

我有选择菜单:

<div class="selector">
<select>
<option value="valueA">Value A</option>
<option value="valueB">Value B</option>
<option value="valueC">Value C</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要Javascript(没有jquery!)来按值获取选项并更改它的文本(innerHtml)

例如,当我运行该函数时,我需要从类"selector"获取值为"valueB"的选项,并将其文本更改为Value Whatever.

javascript option

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

从XPath字符串中删除或替换一些文本

是否可以删除或替换XPath字符串上的文本?

使用XPath,我获得的URL是http:// www,并且我想删除http:// www,因此相同的XPath查询将仅向我返回一个没有http:// www的链接。我找不到有关删除或替换Xpath字符串的任何信息。

可能吗?如果是这样,该怎么做?

xpath

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

标签 统计

file-upload ×1

image ×1

javascript ×1

option ×1

php ×1

security ×1

upload ×1

xpath ×1