Hackerrank gibi siteler nasil calisir?

Herkese merhaba ben hackerrank gibi ama daha basit bir site yazmayi dusunuyorum ama bazi kisimlari kafamda bir turlu oturtamadim kodunu denemek isteyen insan zararli bir kod yazarsa onu serverde calismasini nasil engelellerim? yani nereden anlaya bilirim kodu denemek isteyen yalnis kodlar girmismi?

Bu konu hakkinda bir bilgisi olan yokmu?

Merhaba. Elimizde d├╝zg├╝n bir zararl─▒ kod tan─▒m─▒ olsa bile bir kodu ├žal─▒┼čt─▒r─▒p sonucunu beklemeden bu zararl─▒ i┼člemlere yeltenip yeltenmeyece─čini bilmek her zaman m├╝mk├╝n de─čil, hatta bu problem halting problem ile e┼č de─čerdir diye tahmin ediyorum. E─čer kod analizi yap─▒lmaya ├žal─▒┼č─▒l─▒rsa her farkl─▒ dil i├žin ayr─▒ ayr─▒ u─čra┼č─▒lmas─▒ gerekti─či de g├Âz ├Ân├╝nde bulunduruldu─čunda bu tehlikeli olabilecek i┼člemleri g├╝venli sandboxÔÇÖlarda veya containerÔÇÖlarda ├žal─▒┼čt─▒rmak laz─▒m.

3 Be─čeni

Cok guzel bir tespit. Hatta en basit zararli kodun sonsuz dongu oldugunu dusunursek, birebir ayni problem.

Fakat bunun temeli olan G├ÂdelÔÇÖin b├╝t├╝ns├╝zl├╝k (sanirim, Turkcesi) teoremine inersek ufak bir kacis noktamiz var: Bu teorem/problem, yeterince karmasik sistemler icin gecerli. Turing Makinasinin altina indigimizde, mesela loopÔÇÖlari kaldirdigimizda veya sonsuz olmayan bir sayiyla sinirlandirdigimizda ortadan kalkiyor.

Pratige/elimizdeki probleme donersek, mesela belli sistem cagrilarini asla yapmayan bir dilin sistem acisindan guvenliligini garanti edebiliriz. Sonsuz CPU/hafiza kullanimini kernelÔÇÖden kisitlayabilir, veya bir watchdog yardimiyla kontrolden cikmasini engelleyebiliriz. Sorun, butun bu kisitlamalara sahip bir dil Python dili olmaktan cikar.

Yani meselenin olasi cozumu kotu niyetli programlari blacklist ile kisitlama degil, sadece iyi niyetli programlara yol acacak whitelisted yapi taslari sunmak.

Veya emulasyon/sandboxing, tabi ki.


Yukaridaki konular ilgi cekiyorsa Douglas HofstadterÔÇÖin G├Âdel, Escher, Bach: An Eternal Golden Braid adli kitabini siddetle tavsiye ederim. Yeterli bilgisayar bilimi arkaplanina veya ilgisine sahip olup bu kitabi okumamak buyuk bir firsat kaybi, kanimca.

4 Be─čeni

@EkremDincel dedi─či gibi s─▒n─▒rl─▒ ortamlarda ├žal─▒┼čt─▒r─▒l─▒yordur, bir de ├žal─▒┼čt─▒rmadan ├Ânce de eleme yapabilrisin. Zaten bu sitelerde senden bir fonksiyonun i├žini doldurman─▒ istiyorlar, regex kurallar─▒ ile kullan─▒lmas─▒n─▒ istemedi─čin k├╝t├╝phaneleri belirleyebilrisin, veya belli bir s├╝re ├žal─▒┼čt─▒ktan sonra i┼člemi sonland─▒rabilirsin.

evet haklisiniz ama bazi sitelerde beli bir kod yazmaya mecbur etmiyor direk kodun sonucuyla ilgileniyor func ilede yazarsan sonuc dogruysa dogru func olmandada dogruysa dogru kabul ediyor yani direk programin sonucuna odakli calisiyor