görüntülerinde gömülü komut

4 Cevap php

Ben küçük bir tarayıcı MMO çalıştırın, ve ben bir kaç kullanıcıların profil resimlerinin içine komut gömme ve karşı saldırılar yapmak için onları kullanarak bir sorun var kullanıcılar, ve genel olarak benim oyun söyledi. Bu karşı korumak için bir yolu var mı, ya da ben kendi özel görüntüleri kullanmak mümkün olmaktan insanları engelleme başlamak gerekiyor?

Herhangi bir yardımcı olursa, PHP / MySQL bitti.

4 Cevap

Büyük olasılıkla hapening ne onlar imajı oluşturma ve anında onu döndüren bir komut dosyası için bir bağlantı veriyoruz edilir bir seçenek için, bu konuda yapabileceği, dış görüntüleri kullanmak için hiçbir izin kullanıcıların kenara bir şey yok bu dış görüntüye bağlantı karşıt olarak sunucu üzerinde görüntü indirmek ve saklamak için bir engel.

--I decided to provide a sample
This image is created on the fly, the url I'm giving is: http://unkwndesign.com/profilePic.png:
alt text
now, profilePic.png is a folder that when requested is providing index.php which, using gd, is getting the SO logo, and imposing your IP address over it, to be very clear here I AM NOT LOGING THIS OR ANY OTHER DATA the source for the index.php is:

<?php
$image = imagecreatefrompng("http://stackoverflow.com/Content/Img/stackoverflow-logo-250.png");
$font_size = 12;
$color = imagecolorallocate($image, 0,0,0);
ImageTTFText ($image, $font_size, 0, 55, 35, $color, "arial.ttf",$_SERVER['REMOTE_ADDR']);
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
?>

Since I am returning an image, with a proper extension, and the proper mime-type there is no way to detect what I am doing. If the server had downloaded my image and stored it locally the IP address would be that of the server, which would ruin the fun of doing it and likely prove to be enough of a discurageing factor to stop the behavior.

GD sürecini bu görüntüleri olan deneyin. O hataları atarsa, sen bir sorun var biliyorum. Resim upload nispeten nadir görülen bir işlem olduğu, bu yük sorunlar keyfi manipülasyon çeşit yapmak için neden olmamalıdır.

Görüntü bütünlüğünü doğrulamak için en yaygın uygulamalardan bazıları MIME türünü ya da ikili bir görüntünün ilk birkaç bayt okuma kontrol içerir. Bu iyi değildir rağmen, bazıları savuşturmak için bir denemeye değer.

Eğer IE böylece kullanıcı gönderilen görüntüleri HTML ve betik enjeksiyonu sağlayan bir HTML sayfası olarak bu HTML etiketleri ile bir görüntü yorumlayacak konuda konuşuyorsun?

(Bunu söylemek bile IE bunu yapacak olan böcek Content-Type bir görüntü / türüdür. Microsoft, 'yararlı' olduğu için bu girişim ile sonsuz güvenlik felaketlere neden olmuştur.)

Eğer öyleyse, olağan çözüm farklı bir konak, web uygulaması hizmet hangi ana hostname kurabiyeler erişimi veya komut dosyası yok biri kullanıcı gönderilen görüntüleri hizmet etmektir.

Görüntü sunucusu ve uygulama sunucusu, her biri belirli bir hostname sadece mevcut (ve uygulama sunucu IP adresi üzerinden erişilebilir olmamalıdır) böylece sanal sunucularını kilitlemek için emin olun.

Bu çapraz-site betik sorunları çözecektir. Hala başa cross-site-istek-sahtecilik istekleri olabilir, ama bu farklı bir sorun var ve görüntü sarılmış komut enjeksiyonu olmadan istismar edilebilir.