---
title: "köra potentiellt elak kod i \"säker\" miljö"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/19422-köra-potentiellt-elak-kod-i-säker-miljö"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Peter_B"
published: "2001-10-21T14:13:00.000Z"
updated: "2001-10-22T06:15:00.000Z"
replies: 4
views: 265
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/19422-köra-potentiellt-elak-kod-i-säker-miljö"
---

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

## #1 — Peter_B, 2001-10-21T14:13Z

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...

Permalänk: https://www.webforum.nu/p/19422

## #2 — Jojoxx, 2001-10-21T15:04Z

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](http://www.perldoc.com/perl5.6/pod/func/package.html).

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.

Permalänk: https://www.webforum.nu/p/342113

## #3 — Hansen, 2001-10-21T15:42Z

Hej,
Det finns en modul som heter [Safe](http://www.perldoc.com/perl5.6/lib/Safe.html) 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?

Permalänk: https://www.webforum.nu/p/342114

## #4 — Peter_B, 2001-10-21T19:11Z

ö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å.

Permalänk: https://www.webforum.nu/p/342115

## #5 — Hansen, 2001-10-22T06:15Z

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>

Permalänk: https://www.webforum.nu/p/342116

---

Tråden på webben: https://www.webforum.nu/amne/programmering/19422-köra-potentiellt-elak-kod-i-säker-miljö
