Jag har i fyra omgångar nu fått några av alla mina asp-filer ändrade. Mina å har ändrats till ? och dessutom har de i texten lite här och där lagt in länkar som ser ut bl.a. så här:
Har varit i kontakt med Loopia som säger att jag har något säkerhetshål på mina sidor. Har haft min hemsida på nätet sedan 2004 och aldrig haft något problem. Har inga program/moduler eller något, endast asp och html-sidor. De säger att jag får gå igenom min kod, har ung 300 asp-sidor så det blir ju en del att gå igenom. Någon som vet hur man på ett enkelt sätt kan säkra sina sidor?
Börjar bli trött på att gå in varje dag och se om något ändrats...
Har ändrat lösenordet till FTP som de sa jag skulle göra men det hjälpte ju ingenting.
Hur säkrar man att man inte kan hacka asp-sidor är väl egentligen min fråga!!?? :(
Är det alltid samma filer som drabbas?
Hur är dessa filer uppbyggda?
Hämtas text och länkar från en databas?
Finns det formulär som styr över detta innehåll?
det är olika sidor varje gång. Texten hämtas från en mysql-databas. Du kan se t.ex. en som blev hackad igår här, en vanlig enkel sida, inga konstigheter. http://www.historiesajten.se/kungarisland.asp
<tr><td class="vtextcenter" colspan="2">Även Danska kungar fram till 1944, och Norska kungar fram till 1814.</td></tr>
<tr><td height="20" colspan="2"></td></tr>
<tr><td colspan="2"><div class="kungalistor">Ätten Oldenburg</div></td></tr></table>
I en länk som t.ex. visainfo.asp?id=246 kan man byta ut 246 mot kod och därmed utföra lite vad som helst. Så ja, du behöver säkra upp emot SQL Injektion.
Men när sidan hackas så ändras det alltså inte i databasen utan det läggs in hårdkodade länkar?
ja om jag tänker efter så är det inte från databasen den hämtar utan jag har skrivit direkt in i asp-filen. Jag är ju helt rudis när det gäller sånt här. Har du något tips på hur man skall skriva i de filerna för att de inte skall kunna ändra i texten? jättetacksam för hjälp!!
ja om jag tänker efter så är det inte från databasen den hämtar utan jag har skrivit direkt in i asp-filen. Jag är ju helt rudis när det gäller sånt här. Har du något tips på hur man skall skriva i de filerna för att de inte skall kunna ändra i texten? jättetacksam för hjälp!!
Vissa saker som du ALLTID måste göra på alla sidor du har: Validera all indata! Med indata menas allting som kommer från formulär, allting som hämtas från URL:en, ev cookies, och liknande. Kort och gott all indata som användarna kan komma åt att ändra på.
Om du förväntar dig ett heltal, kolla att det verkligen är ett heltal du fått och BARA ett heltal. Om du förväntar dig en sträng, se till att den inte innehåller farliga tecken - hur detta bäst kollas i ASP är jag fel person att tipsa om -, om du förväntar dig värden i ett visst intervall, kolla att det värde du fick ligger i det intervallet. (Eller alternativt försäkra dig om att din asp-kod hanterar ett värde utanför intervallet på ett vettigt och säkert sätt.)
Se till att eventuella felmeddelanden inte lämnar ut onödigt detaljerade upplysningar i stil med tex kunde inte ansluta till databasen KALLE med användarnamn AAA och lösenord 123.
För sidor som har databaskoppling: Läs på om SQL Injections förslagsvis genom att söka på detta i Google. (Om du inte redan har koller mot detta måste de läggas in omedelbart annars kan vem som helst totalfördärva din databas precis när som helst! Ta bort den helt, tömma tabeller, lägga in egen data, ändra befintlig.... Det är som att resa bort och lämna ytterdörren vidöppen efter sig!
Jag vill inte påstå att detta är en uttömmande lista, men en bra start som du bör ta tag i omgående. Överväg även att stänga sidan helt tills du hunnit hitta och åtgärda hålen.
Nu har jag hittat en asp-fil som låg i en img-katalog på loopia som inte är min. Den hade ändrats någon dag innan jag upptäckte att det var fel på min sida. test.asp hette den och låg i en "iphone"-katalog (som jag inte ens själv har på min stationära) vilket speglar det jag har på loopia....
Den var också helt kryptisk så jag tog bort den.
De filerna som har blivit ändrade har inte hämtat data från db:n. Och de ser ut ungf. så här http://www.historiesajten.se/kungar.asp så det hämtas ju inte från ett formulär eller liknande. Så jag vet inte hur jag skall skriva/göra då? Det är en vanlig fil jag har skrivit rätt in i och har inga strängar eller så alls?
Jag hoppas problemet försvinner nu när jag tagit bort test.asp...
Skall maila till loopia och berätta. Visst måste väl ändå de ha ett säkerhetshål om folk kan lägga in filer på servern??
Tog du en kopia av filen så man kan undersöka den?
Det kan ju vara fel på Loopias sida, men det finns även rootkits som du skulle kunna ha på din dator som tar sig in när du öppnar en FTP-anslutning och börjar lägga in filer den vägen.
Mitt personliga tips skulle vara att kanske satsa på att byta till Apache-server med PHP och köra MediaWiki. Det lär bli en del omställningsjobb, och det kanske känns surt att sumpa det arbete du har lagt ner på koden, men det går att ändra utseendet på MW, och mjukvaran har bra möjligheter att lagra dataposter (t ex listor över avrättade, freder och vad du nu har för föremål) på ett strukturerat sätt.
Nej jag tog ingen kopia på filen tyvärr. Jag kollade dock i den och det var bara en massa konstiga tecken.
Har en fråga, är det någon här som på ett enkelt sätt kan förklara för mig hur jag skall göra för att dölja så det inte står t.ex. så här: http://historiesajten.se/krigsinfo.asp?id=2
Har i ett annat forum fått en massa skäll, och jag är ju ingen utvecklare så jag har lite svårt att ta det tyvärr..
De säger att de kan pajja hela min databas om de sätter ett ' efter strängen. Och de kan de kanske men hur skall jag göra för att ändra/dölja?
Jag har ju 100-tals filer och har varken ork, lust eller tid att ändra i alla. Jag gillar ju att skriva om historiska saker, inte att koda. Någon som har ett enkelt exempel på hur man döljer ?id=2, för så får man visst inte ha enligt det andra forumet.. :(
Det handlar inte om att dölja id=2. idt måste vara med för att du ska kunna hämta rätt innehåll. Det handlar om att du ser till att 2an är ett tal och inte en sträng. Att skriva något i stil med:
så här skrev de i andra forumet:
Om din fil heter tillexempel visa.asp?id=1
så finns en variabel med id 1. Om variabeln innehåller 1' (med ') så går det att modifiera mysql queryn och göra vad som helst med databasen. Livsfarligt!!
Men hur skall jag skriva då? Jag kan inte sånt här.
Jag testade själv på en av mina filer, satte ett ' krigsinfo.asp?id=3' efter och fick då följande:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-5.0.45-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Ser ju inte snyggt ut precis men något annat händer ju inte. Fast det kan man nog göra värre kanske.
Behöver något simpelt exempel på hur man förhindrar detta.
Dessutom borde du stänga av visningen utav tekniska felmeddelanden. Dessa skall endast lagras i en loggfil eller liknande som bara du har tillgång till.
I stället kan du visa ett användarvänligare felmeddelande som inte undanröjer eventuella information om databasen osv.
Med risk för att alla tycker jag är skitkorkad, men jag har redan sagt flera gånger att jag är inte alls hemma i det här. Har läst en massa om sql injection och har försökt lagt in det där jag tror det skall vara, men får felsidor när jag försökt lagt in det i koden.
I några av mina asp-sidor har jag följande.. är detta på rätt väg?
qid = Request.QueryString("id")
If IsNumeric(qid)= false then
qid = 1
End If
Sen hämtar jag ut qid från databasen.
Är säkert fel men men...
Och hur stänger man av visningen utav tekniska felmeddelanden? Lätt om man vet men obegripligt om man inte är utvecklare. Lägger man in en if-sats att om det är fel så visa "fel-sida" eller hur gör man?
I några av mina asp-sidor har jag följande.. är detta på rätt väg?
qid = Request.QueryString("id")
If IsNumeric(qid)= false then
qid = 1
End If
Sen hämtar jag ut qid från databasen.
Är säkert fel men men...
Det är så du ska göra och det där borde vara säkert. Men eftersom du inte hämtar data från databasen i detta fallet och eftersom det läggs till sidor som du inte har skapat så tror jag på det nitro2k01 skriver om rootkits. Hur hittar man och eliminerar sådant?
139 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe