webForumDet fria alternativet

köra potentiellt elak kod i "säker" miljö

Programmering

4 svar · 244 visningar · startad av Peter_B

Medlem sedan apr. 2000642 inlägg
Frågan#1

mitt perlscript kan hämta en godtycklig kod från en textruta i ett formulär. jag vill nu kunna köra den här koden, men utan att den kommer åt mina variabler eller dylikt som jag har.

helst skulle jag vilja köra med hjälp av use, require eller eval... fast de kör ju koden som om det vore en funktion eller nått inuti det egna programmet, dvs alla variabler (tex databashandlers) och annat syns.

helst skulle jag vilja slippa att skapa en ny process mha system eller open eftersom det tar tid. (ska göra detta några gånger ;) )

hur får jag koden att köra som om den vore ensam i hela universum? åtkomsten till datorn bör vara begränsad, dvs inte skapa filer, kommunicera mm.. vill bara ha ut en resulterande sträng från koden...

------------------
PeterSign v 2.3.36

Medlem sedan juni 20004 308 inlägg
#2

Detta är farliga grejer... :) Jag skulle säga att du bör inte under några som hellst omständigheter använda data som användaren anger direkt i en eval eller systemanrop. Även om du "sollar" bort sådannt som du inte vill ha med så är risken stor att du missar något som skapar ett säkerhetshål. Säkrare i så fall är att titta på det data du får in och efter det göra de beräkningar som behövs. Beroende på vad det är för kod som du förväntas få in kan det vara mer eller mindre svårt. Vill du använda hela perls funktionalitet blir det svårt...

Begränsa åtkomsten av variabler gör du nog enklast genom att skapa ett nytt namespace.

Ett alternativet kanske kan vara någon form av wrapper som du kan köra och se till att scriptet körs som en användare utan några som hellst rättigheter till annat än scriptet. Bara en teoretisk möjlighet, har inte provat det.

------------------
/ J

Medlem sedan aug. 2000374 inlägg
#3

Hej,
Det finns en modul som heter Safe som följer med perl, tror att den gör det du efterfrågar.

Håller dock med Jojoxx. Du borde undvika detta om det är möjligt.

Varför vill du ge användaren sådana möjligeter?

------------------
Hansen
c.h@ngmedia.com

Medlem sedan apr. 2000642 inlägg
#4

ökad funktionalitet och konfigurerbarhet när man skriver artiklar.

Safe verkar vara lite intressant... ska utföra lite test på den, får se vad som händer.

nån som har mer info om Safe-modulen? prestanda är mycket viktigt.

annars klarar jag mig nog till stor del med vanlig textsubstition, tror nog knappt att nått annat kommer att användas ändå.

------------------
PeterSign v 2.3.36

Medlem sedan aug. 2000374 inlägg
#5

Vad är det som du vill tillåta dina användare att göra? Uttryck, loopar?

En sökning på Perl Monks, http://www.perlmonks.org/index.pl?node_id=77228&lastnode_id=3989

------------------
Hansen
c.h@ngmedia.com

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)