转:PHP如何阻止用户上传成人照片或者裸照

原文来自于:http://www.hackbase.com/tech/2014-10-12/69367.html

当前,网络淫秽色情信息屡禁不止、屡打不绝,严重危害未成年人身心健康,严重败坏社会风气,社会各界对此深恶痛绝,人民群众要求严厉整治的呼声强烈。为此在全国范围内统一开展打击网上淫秽色情信息“扫黄打非·净网2014”专项行动。

在这份教程中,我们将会学习到如何组织用户通过php上传成人照片或者裸照.点下面附件下载源码

PHP过滤成人照片.zip

我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件.
它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.
作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值.
此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.
当前它可以对PNG,GIF和JPEG图片进行分析.

下面展示了如何使用这个PHP类.

让我们先从包含裸体过滤器,nf.php文件开始.

include (‘nf.php‘);

接下来,创建一个新的名叫ImageFilter的类,然后把它放到一个叫做$filter的变量中.

$filter = new ImageFilter;

获取图片的分值并将其放到一个$score变量中.

$score = $filter -> GetScore($_FILES[‘img‘][‘tmp_name‘]);

如果图片分值大于或等于60%,那就展示一条(告警)消息.

if($score >= 60){
/*Message*/
}

下面是所有的PHP代码:

<?php
/*Include the Nudity Filter file*/
include (‘nf.php‘);
/*Create a new class called $filter*/
$filter = new ImageFilter;
/*Get the score of the image*/
$score = $filter -> GetScore($_FILES[‘img‘][‘tmp_name‘]);
/*If the $score variable is set*/
if (isset($score)) {
    /*If the image contains nudity, display image score and message. Score value if more than 60%, it is considered an adult image.*/
    if ($score >= 60) {
        echo "Image scored " . $score . "%, It seems that you have uploaded a nude picture.";
    /*If the image doesn‘t contain nudity*/
    } else if ($score < 0) {
        echo "Congratulations, you have uploaded an non-nude image.";
    }
}
?>

我们可以使用一个基础的HTML表单上传图片.

<form method="post" enctype="multipart/form-data" action="<?php echo $SERVER[‘PHP_SELF‘];?> ">
Upload image:
<input type="file" name="img" id="img" />
<input type="submit" value="Sumit Image" />
</form>

请记得,PHP不能够检测所有的裸体图片,所以不完全可信.我希望你觉得这还有点用处.

时间: 2024-08-11 05:28:28

转:PHP如何阻止用户上传成人照片或者裸照的相关文章

PHP 如何阻止用户上传成人照片或者裸照

在这份教程中,我们将会学习到如何阻止用户通过PHP上传成人照片或者裸照. 示例   下载 我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件. 它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调. 作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值. 此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记. 当前它可以对PNG,GIF和JPEG图片进行分析

【第二组】典型场景:用户上传自定义谜题,工作序号:002,2017/7/6

场景 工作项序号001:查看导入的图片,最后修改时间:2017/7/6 1. 背景 1) 典型用户:李二蛋[主要].龙傲天[次要] 2) 用户的需求/迫切需要解决的问题 李二蛋:看推理小说时间够长,我想自己写一个. 李二蛋:写了一个推理小说,我想去把它在生活中实现,让我的哥们玩. 李二蛋:我看着他们玩,在玩的时候当上帝. 龙傲天:我随手写了一个脚本,发送到系统,希望有人懂我,解开我设的谜题. 3) 假设: 用户上传谜题功能已实现 谜题转化成游戏的功能已实现 2. 场景 李二蛋登录了游戏,进入游戏

java自动识别用户上传的文本文件编码

经常碰到用户上传的部分数据文本文件乱码问题,又不能限制用户的上传的文件编码格式(这样对客户的要求可能比较高), 只好自己想办法.  找了一部分java获取文件编码的. 要么就是识别错误. 要么就是只有一小段的代码,也不说具体引用了什么...我就在这里分享一下吧. 工具类就一个方法. main测试方法我就不写了. 貌似还不能上传附件...就弄到我的资源里去吧. 引用了.这两个jar类. chardet.jar cpdetector_1.0.10.jar package com.dxx.buscre

匿名用户上传文件

实验2允许匿名用户上传文件 实验环境 在虚拟机Linux 6.5系统下需要2台Linux系统一台A作为服务端一条B作为测试客户端开启2台Linux系统. 实验目标 A作为服务端配置VSFTPD服务器实现FTP服务. B作为测试客户端验证服务器A的共享是否有效. 配置真实主机确保真实主机能ping通2台虚拟机. 实验步骤 1.  首先将A,B真实主机放到同一网段中为了以后实验方便配置永久起效的静态IP地址验证AB真实主机能否通信安装vsftpd服务并启动. 2.  修改vsftpd主配置文件使得匿

ubuntu server vsftpd 匿名用户上传下载及目录设置

ubuntu server vsftpd 匿名用户上传下载及目录设置 1:vsftpd服务器安装: sudo apt-get install vsftpd #安装 cd /srv/ #切换到默认匿名用户ftp目录: 运行 ls -l 我们可以看到 默认的 ftp目录是,虚拟用户ftp的根目录,并且此目录是匿名用户管理的根目录, 无论是对 ftp,改组,改用户,改权限都不能在ftp根目录下,上传东西,要么就是ftp匿名无法连接,要么就是不能上传:折腾了几天,终于明白了! ftp 作为匿名用户根目录

Linux FTP匿名用户上传下载登录

FTP服务器192.168.62.2 第一步:vsftpd配置文件的更改 [[email protected] vsftpd]# cat vsftpd.conf # Example config file /etc/vsftpd/vsftpd.conf## The default compiled in settings are fairly paranoid. This sample file# loosens things up a bit, to make the ftp daemon m

解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题

为解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题. 定义: A:iis服务器 B:文件服务器 步骤: 1.在B上创建一个用户[uploaduser](并设置密码) 2.给B上的共享目录赋予用户[uploaduser]读写的权限. 3.在A上创建一个相同的用户[uploaduser](用户名和密码都一样) 4.在A上新建一个虚拟目录,指向B上的那个目录:并且检查其共享权限和权限中,[uploaduser]都存在且都有读写权限. 5.在A的iis这样配置: IIS应用程序池的

django 用户上传文件media的存储访问配置1

1. 首先新建文件夹media  后 在项目setting中具体配置: 1 MEDIA_URL = '/media/' 2 MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 在 setting 中的 TEMPLATES 下的 OPTIONS 中的 context_processors 中追加: TEMPLATES = [ { 'DIRS': [os.path.join(BASE_DIR, 'templates')], ...... 'OPTIONS': {

Django配置用户上传文件夹和暴露后端文件夹资源

网站所用的静态文件我们都默认存放到static文件夹下,而用户上传的文件也是静态资源,我们需要找一个公共的地方专门存储用户上传的静态文件. 针对用户上传的不同文件,保存到指定的文件夹下. media配置专门用来指定用户上传的静态文件存放路径 1.配置文件中书写以下代码 # settings.py MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # 用户上传的文件就会保存到该文件夹下 # media是文件夹的名字,可以自定义,一般使用media作为名字 当