2011-11-14 13 views
6

ideone gibi birçok çevrimiçi derleyici vardır. Yerel makinede bir parça kod derlediğimizde ve çalıştırırken gerçekleşen şey gibi gerçekten her şeyi yaptıklarını mı merak ediyordum? ya da kısıtlı ayrıcalıklarla mı çalıştırıyorlar?Çevrimiçi derleyici araçları her şeyi yapar mı yoksa sadece derlediklerini kontrol ederler mi?

böyle daha çok şey olabilir: Ben bir soket oluşturmak ve global IP bir bağlantı isteği göndermek, bu küresel makine isteği alacak? Yoksa konsolda aldığımız çıktıyı mı gösterir? C ve C++ 'dan başka bir şey kullanmıyorum, bu yüzden bu ikisini de etiketlemek, özellikle bu ama diğer şeyler ve kavramlar için cevaplar beklemekle aynı derecede hoş karşılanmak.

+1

Neden deneyin? Benim bahis bu derleyiciler herhangi standart dışı kütüphanelerine sahip olmayacak ve muhtemelen satır içi montaj çıkarmaz olmasıdır :-) ... –

+2

@KerrekSB: bunlar mevcut olmayan bazı standart kütüphaneleri var; örneğin, hem ideone hem de codepad, Boost kütüphanelerini kullanmasına izin verir (en son sürümü değil). –

cevap

9

bildiğim gibi, çoğu çevrimiçi derleyiciler gerçek derleme yapacağız. Fakat çalışma aşaması (eğer varsa) küresel olarak gözlemlenemez; Gönderilen her kod sanal alanda tutulmalıdır (gerçek dünyadaki iki taraflı iletişim yok, herhangi bir yıkıcı eylem gerçekleştirme yeteneği yok). Sandbox hakkında daha fazla bilgi edinin, ör. wikipe: http://en.wikipedia.org/wiki/Sandbox_(computer_security) (çevrimiçi IDE, "Çevrimiçi hakem gibi" sınırlar ve korumalı alan bakımından)

E.g. kötü bir kullanıcı

main(){system("rm -fr /");} 

göndermeye deneyebilirsiniz ve site böyle kodundan savunmak gerekir. Bu çalıştırmak taklit bile chroot ile hiçbir kullanıcı (en düşük ayrıcalık düzeyi) kodu çalıştırabilir veya (valgrind/qemu).

  • benim programdan ağa erişebilir miyim:

    ideone bile sınırları hakkında SSS diyor? - Hayır

  • yazıyorum ya da benim programda dosyaları okuyabiliyor mu? - Hayır
  • yürütme zamanı: 5 veya 15 saniye

gönderilen kod güvenilir olmayan kod çünkü Yani, evet, onlar, (çok) sınırlı ayrıcalıklarla çalıştırır.

İlgili konular