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

 在这份教程中,我们将会学习到如何阻止用户通过PHP上传成人照片或者裸照.

  示例   下载

  我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件.

  它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.

  作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值.

  此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.

  当前它可以对PNG,GIF和JPEG图片进行分析.

  PHP

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

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


1

include (‘nf.php‘);

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


1

$filter new ImageFilter;

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


1

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

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


1

2

3

if($score >= 60){

/*Message*/

}

  下面是所有的PHP代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?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表单上传图片.


1

2

3

4

5

<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不能够检测所有的裸体图片,所以不完全可信.我希望你觉得这还有点用处.

  原文地址:http://www.rrpowered.com/2014/04/prevent-uploads-of-adult-or-nude-pictures-using-php/

时间: 2024-10-05 16:48:32

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

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

原文来自于:http://www.hackbase.com/tech/2014-10-12/69367.html 当前,网络淫秽色情信息屡禁不止.屡打不绝,严重危害未成年人身心健康,严重败坏社会风气,社会各界对此深恶痛绝,人民群众要求严厉整治的呼声强烈.为此在全国范围内统一开展打击网上淫秽色情信息“扫黄打非·净网2014”专项行动. 在这份教程中,我们将会学习到如何组织用户通过php上传成人照片或者裸照.点下面附件下载源码 PHP过滤成人照片.zip 我在phpclasses.org上面偶然发现

利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题

html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非横拍的ios照片进行角度旋转修正. 利用exif.js读取照片的拍摄信息,详见  http://code.ciaoca.com/javascript/exif-js/ 这里主要用到Orientation属性. Orientation属性说明如下: 旋转角度 参数 0° 1 顺时针90° 6 逆时针9

ios系统 竖屏拍照 canvas处理后 图片旋转(利用exif.js解决ios手机上传竖拍照片旋转90度问题)

转:https://www.cnblogs.com/lovelgx/articles/8656615.html ---恢复内容开始--- 问题:html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 解决方法:利用exif.js解决ios手机上传竖拍照片旋转90度问题 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非横拍的ios照片进行角度旋转修正. 利用exif.js读取照片的拍摄信息,详见 htt

【第二组】典型场景:用户上传自定义谜题,工作序号: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应用程序池的