关于前置摄像头(照妖镜、千里眼)【壹·源码分析·ck】
本帖最后由 酒诡 于 2023-10-21 17:47 编辑害,前几天属实忙的不着边,趁有空更他几发{:4_205:}
https://w.paijishu.net/static/image/hrline/1.gifhttps://w.paijishu.net/static/image/hrline/1.gif
千里眼想必大家都见过吧
也就是那个开启前置摄像头的钓鱼.......额.........诈骗链接..........个人觉得还蛮常见的
就这种
违不违法咱得问罗老师,毕竟是自己授权后才被拍照的,但是肯定是不道德的
就原版来看的话大差不差的应该都长这样
从上往下一个个看吧,排列也没什么理由,首先就是ck
<div style="width: 90%; margin: 10px auto; border: 1px solid #ccc; text-align: center">
<?php
error_reporting(0);
$type=trim($_GET['type']);
$page=isset($_GET['page'])?$_GET['page']:0;//从零开始
$id=trim($_GET['id']);
$imgnums = 2; //每页显示的图片数
$path="./img/"; //图片保存的目录
if ($type=="del"){
echo '确定清空所有照片?<br /><br />';
echo "<a href=?type=dell&id=$id>确定</a> <a href=javascript:history.back(-1)>返回上一页</a> <br /><br />";
exit;
}elseif($type=="dell"){
//清空照片函数
$handle = opendir($path);
while (false !== ($file = readdir($handle))) {
list($filesname,$ext)=explode(".",$file);
if($ext=="png" and explode('_', $filesname)==$id) {
if (!is_dir('./'.$file)) {
unlink('./.../'.$file);
}
}
}
echo '该ID下的所有照片已经清除!<br /><br />';
}
$handle = opendir($path);
$i=0;
while (false !== ($file = readdir($handle))) {
list($filesname,$ext)=explode(".",$file);
if($ext=="png" and explode('_', $filesname)==$id) {
if (!is_dir('./'.$file)) {
$array[]=$file;//保存图片名称
++$i;
}
}
}
if($array){
rsort($array);//修改日期倒序排序
echo "<a href=?page=$page&id=$id&type=del>清空所有照片</a> <br /><br />";
}
else{
echo "该ID下没有任何照片 <br /><br />";
}
for($j=$imgnums*$page; $j<($imgnums*$page+$imgnums)&&$j<$i; ++$j){
echo '<div>';
echo "<img src=".$path."/".$array[$j]."><br /><br />";
echo '</div>';
}
$realpage = @ceil($i / $imgnums) - 1;
$Prepage = $page-1;
$Nextpage = $page+1;
if($Prepage<0){
echo "上一页 ";
echo "<a href=?page=$Nextpage&id=$id>下一页</a> ";
echo "<a href=?page=$realpage&id=$id>末页</a> ";
}elseif($Nextpage >= $realpage){
echo "<a href=?page=0&id=$id>首页</a> ";
echo " <a href=?page=$Prepage&id=$id>上一页</a> ";
echo " 下一页";
}else{
echo "<a href=?page=0&id=$id>首页</a> ";
echo "<a href=?page=$Prepage&id=$id>上一页</a> ";
echo "<a href=?page=$Nextpage&id=$id>下一页</a> ";
echo "<a href=?page=$realpage&id=$id>末页</a> ";
}
?>
</div>该代码为PHP代码,主要功能是用于浏览和管理保存在服务器中的图片。具体实现如下:
首先通过$_GET获取参数,包括type、page和id。其中type用于判断操作类型,page用于指定当前页码,id用于指定需要浏览和管理的图片所属的ID。
根据type参数的不同值,执行不同的操作。当type为del时,提示用户是否清空所有照片,并提供确定和返回上一页的链接;当type为dell时,执行清空照片函数,将指定ID下的所有png格式图片删除。
通过opendir函数打开存储图片的目录,然后遍历该目录下的所有文件,将以png格式且文件名以指定ID开头的文件保存在数组$array中,并记录图片总数$i。
根据图片总数$i和每页显示图片数$imgnums计算出总页数$realpage,并根据当前页码$page和总页数$realpage计算出上一页$Prepage和下一页$Nextpage。
根据数组$array和当前页码$page,打印出当前页需要显示的图片,并提供首页、上一页、下一页和末页的链接,供用户浏览和管理图片。
总体来说,该代码实现了一个简单的图片浏览和管理功能,并且提供了清空所有照片的功能。但是该代码存在一些问题,比如没有考虑到安全性和可读性等方面的问题,需要进一步优化和改进。
水完了,收工!!!{:4_199:}
https://w.paijishu.net/static/image/hrline/5.gifhttps://w.paijishu.net/static/image/hrline/5.gif
只分析最简单的千里眼奥,因为现在录像的,附带ip探针的,附带GPS定位的杂七杂八的都有,就我这个遵纪守法好公民所知,都大差不差的,也没什么好看的
先介绍一下基本情况(可能不准,毕竟能力有限),后续讲解应对技巧
麻了,看了一下pbl就两行,为了不水贴一块发上来吧
<?php
error_reporting(0);
$base64_img = trim($_POST['img']);
$id = trim($_GET['id']);
$url = trim($_GET['url']);
$up_dir = './img/';//存放在当前目录的img文件夹下
if(empty($id) || empty($url) || empty($base64_img)){
exit;
}
if(!file_exists($up_dir)){
mkdir($up_dir,0777);
}
if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){
$type = $result;
if(in_array($type,array('bmp','png'))){
$new_file = $up_dir.$id.'_'.date('mdHis_').'.'.$type;
file_put_contents($new_file, base64_decode(str_replace($result, '', $base64_img)));
header("Location: ".$url);
}
}
?>该PHP代码用于接收前端传来的base64格式的图片数据,并保存为文件,具体实现如下:
首先通过$_POST获取参数$img,以及通过$_GET获取参数$id和$url。其中$id用于指定图片所属的ID,$url用于上传成功后的跳转链接。
判断传入的参数是否为空,如果为空则直接退出。
判断存储图片的目录是否存在,如果不存在则创建该目录。
利用正则表达式匹配出图片类型,然后判断该类型是否为bmp或png格式。
根据当前时间和图片类型生成新的文件名,然后将base64格式的图片数据解码保存为文件(于根目录文件夹)。
如果保存成功,则跳转到指定的$url链接。
总体来说,该代码实现了将base64格式的图片保存为文件的功能。但是该代码也存在一些问题,比如没有对参数进行严格的校验和过滤,可能存在安全隐患(几乎没有);同时,没有考虑到并发上传时可能会出现文件名重复的问题(密钥),需要进一步优化和改进。
本人文笔不好奥,有什么翻车的地方还请大佬多担待{:4_199:}
页:
[1]