Ben CodeIgniter PHP framework kullanarak fotoğraf paylaşım web sitesi geliştiriyorum. Fikri insanların, kendi fotoğraf yüklemek ve (yeniden boyutlandırma, döndürme ve başlamak için kırpma gibi temel bazı şeyleri bunları düzenlemek (onları alt klasörler, çevresinde sürükleyin dosyaları, vb oluşturmanıza olanak sağlar dosya tarayıcısı çeşit yoluyla) onları yönetmek ve olmasıdır daha sonra, I) bazı gelişmiş özellikler ekleyeceğiz.
Zaten CI için üçüncü parti kimlik doğrulama çözümü (Redux Authentication 2 Beta) uygulanan ettik ve ben artık bir JS / PHP dosya yöneticisi (AjaxExplorer) entegre ediyorum, ama sorun olduğunu PHP dosyaları (taşıma, kopyalama, vb) yönetmek için arka uç ajax aramaları kullanıcı girişi çok fazla güvenmektir. Örneğin, (açıklık uğruna basitleştirilmiş) bu gibi şeyler yapıyor:
move_uploaded_file($_FILES['upload']['tmp_name'], $root.$username.$_POST['destination_dir']);
Gördüğünüz gibi körü körüne kullanıcı atar hangi yolu kabul eder gibi, bariz güvenlik endişeleri vardır! Ben zaten kimse böyle bir şey gönderme görebilirsiniz ".. / AnotherUser /" $ _POST ['destination_dir'] değeri olarak.
Benim soru: What's the best way to "sandbox" a user, in order to only allow him to manage his own data? Ben sadece saldırı her girişimi yakalamak umuduyla, filtre + girişlerini doğrulamak mı? Belirli bu sorunu gidermek için özel kütüphaneler / paketleri var mı?
Ben bu sorun her nasılsa, kullanıcılara web tarayıcısı yoluyla dosyaları yönetme gücü verir proje, (yeterince olgun) herhangi çözülmesi gerekir düşünüyorum, bu yüzden SQL Injection hakkında bir yeri vardır (bu çevrede bazı net kurallar bulmak için bekleniyor XSS, CSRF, vb) ama ben doğru anahtar kelimeleri kullanarak değilim sanırım.