Att inte låta dem skriva till disk, köra godtyckliga SQL:er, skriva oändliga loopar eller allokera obegränsat med minne/resurser låter kanske som en start?
Jag fick en idé om att att skriva någon funktion som tar bort oändliga loopar och plockar bort annat förbjudet i koden såsom(XHTML, FSO och annat smaskigt)
Tips?
Så länge du tillåter någon form av fritext så är det i princip omöjligt att under run-time avgöra vad som är en oändlig loop, eller inte. Är tex detta en oändlig loop som riskerar att sänka IIS:en:
do while instr(CStr(now),"8")>0
Application(CStr(rnd))=CreateObject("ADODB.Connection")
loop
Jo, visst. Jag menade mest att om man öht tillåter konstruktioner av typen:
do while <nånting>
..
loop
'eller
for i=0 to <nånting>
..
next
' osv
Så kan man i princip bara tillåta en serie fördefinierade värden på <nånting>. Att tro att man kan skriva en parser som utvärderar värdet på <nånting> kan man glömma.
Sen är det inte bara en fråga om att "sänka" servern. Ska man tex tillåta att nån får för sig att skriva så här:
dim y(6250000) 'Allokera 100 MB.
Application("y") = y
Jo, visst. Jag menade mest att om man öht tillåter konstruktioner av typen:
do while <nånting>
..
loop
'eller
for i=0 to <nånting>
..
next
' osv
Så kan man i princip bara tillåta en serie fördefinierade värden på <nånting>. Att tro att man kan skriva en parser som utvärderar värdet på <nånting> kan man glömma.
Sen är det inte bara en fråga om att "sänka" servern. Ska man tex tillåta att nån får för sig att skriva så här:
dim y(6250000) 'Allokera 100 MB.
Application("y") = y
?
Du har rätt som vanligt och jag håller med dig.
Men som sagt ovan, är det ett webbhotell eller på din egen sida?
Det är ett webhotell och det är inte "vem som helst" som skulle få koda utan det är personer som har tillgång till plats hos min ISP.
Jag är inte rädd för att någon på filt försöker att sabba något, det som snarare är viktigt är att de inte når varandras kataloger och filer i första hand.
290 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e