В этой статье описывается PHP-реализация операции взлома цепочки защиты от кражи изображений. Для вашей справки приведем следующие сведения:
Многие блоги и сайты друзей реализованы с помощью picture bed. Сколько стабильных интерфейсов map bed было обработано с помощью противоугонной цепи, такой как Baidu, Ali, Jingdong, Xiaomi, Sogou и т.д.
Итак, как мы можем избежать противоугонной цепочки и использовать изображения напрямую?
В чем заключается принцип защиты от кражи?
Когда клиент (браузер) запрашивает содержимое с сервера, он отправляет заголовок Этот заголовок содержит такое содержимое, как информация о браузере, файлы cookie и т. Д. Референт Это также входит в это.
Для чего нужен референт?
Он сообщает серверу, кто является источником запроса. Например, если вы перейдете со страницы a на страницу B, то ссылка, полученная на странице B, будет страницей a.
Однако изображение немного отличается от этого. Изображение загружается после загрузки HTML-страницы, поэтому ссылка, полученная изображением, является не предыдущей страницей веб-страницы, а текущей страницей.
Однако изображение немного отличается от этого. Изображение загружается после загрузки HTML-страницы, поэтому ссылка, полученная изображением, является не предыдущей страницей веб-страницы, а текущей страницей.
Итак, как теперь использовать многие веб-сайты , на которые ссылаются , Чтобы предотвратить изображение цепочки?
Есть три случая, в которых изображения могут быть процитированы:
- Этот веб-сайт.
- Никакой информации о рекомендателе. В этом случае вы можете получить доступ к изображению непосредственно с сервера
- Адрес в Белом списке.
Начните обрабатывать противоугонную цепочку
1. Вам нужен сервер 2. В коде используется php
$value){
$this->$key=$value;
}
}
public function getImg($imgUrl){
$this->imgUrl=$imgUrl;
/\*\*Processing URL\*/
if(substr($this->imgUrl,0,7)!=='http://' && substr($this->imgUrl,0,8)!=='https://'){
$this->imgUrl='http://'.$this->imgUrl;
}
/\*\*Resolving the host in the URL\*/
$url\_array=parse\_url($this->imgUrl);
/\*\*Set referer\*/
$this->referer=$this->referer==""?'http://'.$url\_array\['host'\]:$this->referer;
/\*\*Start getting\*/
$this->urlOpen();
$this->imgBody;
/\*\*Processing error\*/
if($this->imgCode!=200){
$this->error(1);
exit();
}
/\*\*Get image format\*/
preg\_match("/Content-Type: image\/(.+?)\n/sim",$this->imgHeader,$result);
/\*\*See if it's a picture\*/
if(!isset($result\[1\])){
$this->error(2);
exit();
}else{
$this->imgType=$result\[1\];
}
/\*\*Output content\*/
$this->out();
}
private function out(){
/\*\*Gif does not deal with, directly draw the graph\*/
if($this->imgType=='gif'){
header("Content-Type: image/gif");
echo $this->imgBody;
exit();
}
header("Content-Type: image/png");
/\*\*Other types, with watermark\*/
$im=imagecreatefromstring($this->imgBody);
$white = imagecolorallocate($im, 255, 255, 255);
/\*Add watermark\*/
if($this->water){
imagettftext($im, 12, 0, 20, 20, $white, "/fonts/hwxh.ttf", $this->water);
}
imagepng($im);
}
private function error($err){
header("Content-Type: image/jpeg");
$im=imagecreatefromstring(file\_get\_contents('./default.jpg'));
imagejpeg($im);
}
private function urlOpen()
{
$ch = curl\_init();
curl\_setopt($ch, CURLOPT\_URL, $this->imgUrl);
curl\_setopt($ch, CURLOPT\_USERAGENT, $this->ua);
curl\_setopt ($ch,CURLOPT\_REFERER,$this->referer);
curl\_setopt($ch, CURLOPT\_RETURNTRANSFER, 1);
curl\_setopt($ch, CURLOPT\_HEADER, 1);
/\*\*Jump, too\*/
curl\_setopt($ch, CURLOPT\_FOLLOWLOCATION, true);
/\*\*Support for HTTPS\*/
$opt\[CURLOPT\_SSL\_VERIFYHOST\] = 2;
$opt\[CURLOPT\_SSL\_VERIFYPEER\] = FALSE;
curl\_setopt\_array($ch, $opt);
$response = curl\_exec($ch);
$this->imgCode=curl\_getinfo($ch, CURLINFO\_HTTP\_CODE) ;
if ($this->imgCode == '200') {
$headerSize = curl\_getinfo($ch, CURLINFO\_HEADER\_SIZE);
$this->imgHeader = substr($response, 0, $headerSize);
$this->imgBody = substr($response, $headerSize);
return ;
}
curl\_close($ch);
}
}
$img=new ImgBridge(array('water'=>''));
$img->getImg(strstr($\_SERVER\["QUERY\_STRING"\], "http"));Код называется dl.php
Затем вы можете получить к нему прямой доступ
Http://доменное имя/адрес с изображением цепочки
Вот обратный прокси-сервер, который я развернул
http://www.likeyunba.com/2.php?url =
Пожалуйста, не принимайте мое прямое использование, мое не будет оставлено надолго, только храните его в течение короткого периода 1-2 месяцев, чтобы вы могли испытать.
дело
Я использую редактор 135 для загрузки изображения и получения адреса изображения
Я использую редактор 135 для загрузки изображения и получения адреса изображения
Плюс обратный агент, обработка цепочки защиты от взлома
Плюс обратный агент, обработка цепочки защиты от взлома
Формат HTML
src=”http://www.likeyunba.com/2.php?url=https://imgs.developpaper.com/imgs/zTeFAx8R_Cmea.jpg” ширина=”500″/> src=”http://www.likeyunba.com/2.php?url=https://imgs.developpaper.com/imgs/zTeFAx8R_Cmea.jpg” ширина=”500″/>
Более заинтересованные читатели, интересующиеся контентом, связанным с PHP, могут просмотреть специальные разделы этого веб-сайта: “Краткое изложение навыков работы с графикой и изображениями PHP”, “Навыки работы с массивом PHP (массив)”, “Учебник по структуре данных и алгоритмам PHP”, “Краткое изложение алгоритмов программирования PHP”, “Краткое изложение навыков математических операций PHP”, “Краткое изложение использования строк PHP (строк)” и “Краткое изложение навыков работы с общими базами данных PHP” “
Я надеюсь, что эта статья поможет вам в программировании на PHP.