Vilket av dessa är plattformar är säkrast egentligen? Jag minns när jag läste perl så sa man att det inte var så säkert...hur är cgi i relation med asp?
ASP säkrare en CGI?
16 svar · 279 visningar · startad av Lukaspojken
ASP är egentligen också CGI. CGI är mer ett samlingsnamn för en scriptteknologi.
Säkerheten hänger inte så mycket på vilken scriptteknologi man använder, utan mer HUR man skapar skripten, och HUR de körs.
Rent tekniskt körs varje PERL/CGI script i egna minnesutrymmen med en egen tolk, dvs 1000 besökare samtidigt, så körs 1000 script på olika ställen, av flera instanser av scriptmotorn.
ASP använder ISAPI dvs. en multikörningsmodul som multitaskar scripten. Denna multitasking gör att man sparar systemresurser och får bättre prestanda.
Detta har inte så mycket med säkerhet att göra, däremot hänger säkerheten på hur servrarna är konfigurerade.
Är man ute efter extra hög säkerhet, så gäller det att låta en expert konfigurera servern, och att använda flera servrar för olika resurser tex. databaser.
Vid programmeringen gäller det att se till att scripten aldrig hamnar i situationer där yttre påverkan är möjlig.
Det kan vara klokt att inte skicka variabler i URL'en.
/*
Fast om de flesta "Hackers" kör LINUX, så är det nog inte klokt att använda LINUX servrar... :-) (obs personlig reflektion, hoppas inte tråden överströmmas av kommentarer till LINUX)
*/
/T
------------------
WRITE_PORT_ULONG(devExt->Mymessage,SMART_WRITE_ACK);
Men om vi antar att vi har två inloggningsscript...ett i perl/cgi och ett i asp...de har samma uppbyggnad. Vilken är lättast att hacka sig igenom...eller är de likvärdiga där?
Toonster >> CGI är mer ett samlingsnamn för en scriptteknologi.
ok, jag känner att jag måste gå in och förtydliga...
CGI (Common Gateway Interface) är en överenskommelse (standard) mellan webbservrar och program för hur de skall skicka information till varandra. CGI är inte något programmeringsspråk. Så länge som ett program följer CGI-standarden kan de vara skrivet i vilket språk som helst; Perl, C, Tcl eller varför inte Assembler?
(Däremot skulle nog väldigt få drömma om att skriva ett CGI-program i Assembler, eftersom det finns många andra språk som lämpar sig bättre för det ändamålet) :)
Jag kände att jag tvungen att skriva detta, eftersom otroligt många har fått för sig att CGI och Perl är samma sak! :(
------------------
Mina knäskålar klapprar fortfarande efter Kent-Mustafas trummsolo!
[Redigerat av oelbal den 12 jun 2001]
De är nog lika lätta/svåra att hacka sig in i. Som sagt, ASP/PERL är bara två olika metoder på nästan samma sak.
Är det så att du är ute efter säker inloggning, så rekommenderar jag att du skapar en användare/grupp på servern, och låter användarna logga in på servern istället för att bli inloggade med script.
/T
------------------
WRITE_PORT_ULONG(devExt->Mymessage,SMART_WRITE_ACK);
ASP är egentligen också CGI. CGI är mer ett samlingsnamn för en scriptteknologi.
Nej. Precis som oelbal skriver sätter CGI upp riktlinjerna för hur webbservern ska kommunicera med omgivande program, och i och med ISAPI så har man gått en annan väg.
Förr i tiden fanns det såna små godbitar i IIS (och NTFS, om jag inte minns fel?) som gjorde att man med enkla medel kunde se kjellkoden på asp-sidor... fastän det är väl åtgärdat nu, får man hoppas.
Hur säkert det är eller inte är har väl snarare att göra med om det körs på Windows eller inte... *sneglar på Toonster* ;)
------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.
Precis, CGI handlar om hur webservern anropar andra program/script. ISAPI är moduler som "självgående" handar program, och dessa ISAPI moduler har fullt multitaskingstöd och full processtidsåtkomst, ren trådning.
Medan CGI moduler körs under den startande processens "timeslice" och har ej full trådning.
Detta kan man märka om man installerar PHP på en IIS.
Väljer man CGI modulen (en .exe fil) så märker man detta negativt på processorns belastning.
Kör man ISAPI modulen (en .dll fil) så minskar processorns belastning, och prestandan ökar anmärkningsvärt
Angående möjligheten att se programkoden:
Dessa "små" buggar finns även på andra plattformar. Det är deärför viktigt att ha en grundläggande säkerhet, tex. databasen på en separat server, och använda sig av komponenter. Då spelar det ingen roll om man "råkar" se koden. Oftast finns den viktiga informationen just i databasen, adresser, priser, artikelnummer mm. mm.
Som jag nämnde tidigare, jag tror inte scriptteknologierna i sig skiljer sig så mycket säkerhetsmässigt, däremot har plattformarna de körs på olika säkerhetsnivåer. Och naturligtvis är NT säkrare med tanke på resursbasread säkerhet, inte som UNIX, filbaserad säkerhet... :-) (återigen, vill inte starta NT vs. UNIX krig, se det som ett personligt inlägg med mina erfarenheter)
/T
------------------
WRITE_PORT_ULONG(devExt->Mymessage,SMART_WRITE_ACK);
Känner att det verkar vara något som glömts bort i denna diskussion... ASP är inte "egentligen också CGI", utan CGI är som oelbal säger en standard, där man använder olika programmerinsspråk för att hantera information. ASP är en plattform för olika scriptteknologier, där man använder sig av scriptspråk.
Det jag vill förtydliga är alltså att ASP inte är ett "språk", som verkar ha förbisetts, utan en plattform för olika språk. T.ex. VBScript, JScript, PerlScript, osv.
------------------
SPiN, bjorne.w@telia.com
-- They pretend to pay me, I pretend to work --
[Redigerat av SPiN den 13 jun 2001]
Ang. den ursprungliga frågan:
På stenåldern gick det att lura scripttolken som körde cgi-scripten att köra kommandon man själv hittat på, men det bör vara åtgärdat på ungefär 170% av alla webbservrar idag.
Sen så funkade det bara på "äkta" cgi, vilket man inte ska använda idag (pga av resursslöseriet). Nu för tiden finns det moduler som mod_perl och FastCGI som gör att det varkar som om man kör cgi, fast man egentligen använder ett server-api.
Och sen ska det naturligtvis inte ligga på ett OS som har lika många hål som ett såll §e :e ;) (observera att detta inte är ett krigiskt inlägg!)
------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.
Eftersom vi ändå startat en orgie i hyrklyverier... :)
....där man använder olika programmerinsspråk för att hantera information. ASP är en plattform för olika scriptteknologier, där man använder sig av scriptspråk.
Ett skriptspråk är också ett programmeringsspråk, så den distinktionen förstår jag inte riktigt. Men, du har helt rätt. ASP är inte CGI, inte ens nästan.
CGI bestämmer hur informationen från webbservern ska se ut när den kommer till CGI-programmet, och hur resultatet ska transporteras tillbaka. Varken mer eller mindre.
Det jag vill förtydliga är alltså att ASP inte är ett "språk", som verkar ha förbisetts, utan en plattform för olika språk. T.ex. VBScript, JScript, PerlScript, osv.
Precis. ASP gör inte mycket egentligen. Den kapslar bara in delar av ISAPI, lägger till lite trix med bl.a. Sessions och Applications, och exporterar detta, i form av ett gäng lätthanterliga objekt (session,application,response,request,server och asperror). ASP är av diverse skäl (huvudsakligen frågan om exekveringen av "programmen") begränsat till skriptspråk, men i princip kan man jobba med ASP även i t.ex. C++ eller Java, genom ett vanligt ASP-dokument som endast instansierar det egentliga programmet (COM-objektet).
<%server.createobject("MinEgen.ASPDLL_i_Cplusplus")%>
Bygger man rätt så har man response,request,session och de andra grabbarna fullt tillgängliga för C++/Java.
[Redigerat av emission den 14 jun 2001]
Ett skriptspråk är också ett programmeringsspråk, så den distinktionen förstår jag inte riktigt.
Vi är inne på samma spår emission, men det jag menade var att scriptspråken är nedbantade versioner av orginalspråken.
Som jag ser det:
VB - programmeringsspråk
Perl - programmeringsspråk
VBScript - nedbantad version av VB
PerlScript - nedbantad version av Perl
Det var så jag menade, men vi tänker lika annars ;)
------------------
SPiN, bjorne.w@telia.com
-- They pretend to pay me, I pretend to work --
Jaså, jag som var av åsikten att scriptspråk helt enkelt är okompilerade (och ofta, om än inte nödvändigtvis, begränsade) programmeringsspråk. Jaja, det där är väl en smaksak...
------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.
/*
Fast om de flesta "Hackers" kör LINUX, så är det nog inte klokt att använda LINUX servrar... :-)
och
Och naturligtvis är NT säkrare med tanke på resursbasread säkerhet, inte som UNIX, filbaserad säkerhet... :-)
Förtydliga dig!(tex använder inte NT resursbaserad säkerhet, undantag finns givetvis)
spango: Smaksak och smaksak... Det du säger är juh rätt, men även det jag säger är rätt(hoppas jag :) )! Man får inte ut samma kraft med VBScript, som man skulle få av VB, eller Perl, eller vad det nu är. Men eftersom att man använder samma syntax och uttryck i VB och VBScript, Perl och PerlScript, osv., tycker jag att det är lättare att säga att det är nedbantade versioner... Håller du inte med?
------------------
SPiN, bjorne.w@telia.com
-- They pretend to pay me, I pretend to work --
Ja, visst! Vad jag menade är att ett scriptspråk inte nödvändigtvis är begränsat i min föreställningsvärld... till exempel anser jag Perl och Python vara scriptspråk, och de är ju inte begränsade på annat vis än att man inte kan göra hårdvarumek med dem.
------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.




