webForumDet fria alternativet

Säkerhet på Internet

Webbutveckling

19 svar · 737 visningar · startad av aasah

Medlem sedan mars 20034 471 inlägg
Frågan#1

Som vanligt kan jag tänka mig flera subforum där detta kanske hör hemma... :x Chansar på att Webbanknytningen gör att det är bättre här än under Program- & OS-relaterat/Säkerhet...

Jag är osäker på vilken typ av info som lite "lurigare" personer kan ta fram. Inte regelrätta hackers med oändlig datakapacitet - vill de hacka min framtida hemsida lär jag inte kunna stoppa dem... :( (Dock borde intresset vara mer än svalt...) Utan mer lite dataintresserade med alldelles för mycket tid till sitt förfogande som får lust att nosa runt. Tyvärr måste man ju fundera över säkerheten på internet, hur enkla grejor man än håller på med...

En server med PHP, kommer att automatiskt visa index.php om inget annat sägs om man går in i en katalog där en sådan fil finns (om jag förstått det rätt).

Låt oss anta att det finns tre filer i katalogen som hemsidans URL går till: index.php, linked.php, hidden.php
index.php innehåller en länk till linked.php. Alltså kommer varje surfare enkelt åt dessa båda filer. Men... frågan är om det finns något sätt för en surfare att se att katalogen även innehåller en tredje fil och dess namn. Dvs om ingen annan sida länkar till hidden.php, kan man utgå ifrån att ingen kan veta att den finns? (Utöver kontoinnehavaren som lagt dit den...) (Och utöver den otroligt envetne som på vinst och förlust prövar om det finns filer a.php - zzz...z.php)

Bakgrunden till frågan är att jag en gång läst ett tips på "säkerhet" som gick ut på att man kunde gömma viss viktig info på detta sätt, och jag vet inte om jag litar på den metoden eller ej...

Medlem sedan aug. 2000374 inlägg
#2

Vad har jag för färg på mina tapeter?

Medlem sedan okt. 20023 030 inlägg
#3

Låter google svara på din fråga:

http://www.google.com/intl/sv/faq.html#secretserver skrev:

Det är nästan omöjligt att hålla en webbserver hemlig genom att inte ge ut några länkar till den. När någon följer en länk från din "hemliga" server till en annan webbserver, är det troligt att din "hemliga" URL skickas med som referens. Så, om det finns en länk till din "hemliga" webbserver på en sida någonstans på nätet, är det troligt att Googlebot och andra sökrobotar kommer att finna den.

Detsamma gäller såklart filer.

Medlem sedan juni 20034 013 inlägg
#4

Om du inte gör något annat misstag så är det visserligen så att man måste gissa sig fram till namnet för att få fram filen, men det är ändå inte något att lita på.

Vanliga misstag är att man har någon länk utåt på den dolda sidan och när man klickar på en länk så skickas automatiskt adressen på sidan där länken finns till den server har hand om webbsidan som länken går till. Alltså, har du en länk till Webforum på den dolda sidan så får Webforum reda på adressen till din dolda sida när du klickar på länken.

En annan vanlig miss är att man tar upp filen/katalogen i robots.txt för att man inte vill att sökmotorerna ska hitta den. Men vem som helst kan ju kolla på robots.txt. RIAA (amerikanska skivbolagens intresseorganisation) har gjort bort sig på den punkten. De hade möjlighet att administrera hemsidan via webbläsaren. Adressen dit var http://www.riaa.org/admin/ och de hade dessutom med /admin i robots.txt just för att inte få dit sökmotorerna. Bingo!

Medlem sedan juni 20034 013 inlägg
#5

Förresten kan man lösenordsskydda sidor med hjälp av Php, så det där borde inte vara ett problem för dig. Det enklaste är ju att du använder dig av ett formulär där man får fylla i lösenordet och sedan kollar Php vad man har skrivit och jämför med det lösenrod du har bestämt. Stämmer det så skapar den en session, och stämmer det inte så gör den inte det. På sidan som ska vara skyddad kollar du om den sessionen finns och skickar tillbaks besökaren till inloggningen om den inte finns.

http://se.php.net/session

Medlem sedan maj 20018 027 inlägg
#6

Utan att ha alltför stor inblick i säkerhet, skulle jag resonera som så; det är webservern som får en förfrågan om att visa hidden.php om nu surfaren gissar sig till det namnet. Eftersom webservern är konfigurerad till att exekvera kod i filer med suffixet php, kommer den att exekvera den kod som finns där, och skicka resultatet, vilket är något helt annat än själva källkoden. Alltså har inte källkoden avslöjats.

Angående möjligheten att se vilka filer som finns på en website, har en del websiter stängt av möjligheten till directory listing. Så kanske det är där du har dina filer? I så fall blir det till att gissa namn på php-filen, vars innehåll surfaren alltså i alla fall inte skulle kunna se (om det nu är så som jag tror).

Jag tror att en viktigare säkerhetsåtgärd än att gömma php-filer, är att hålla koll på vilka data som matas in i formulär och genom query-strängar. Det är säkert betydligt vanligare att folk försöker med sql-injection och liknande.

Det är mina högst okvalificerade tankar om saken. Jag föreslår att du själv försöker "hacka" din sida med de metoder som du misstänker fungerar. Ta helt enkelt reda på vad som händer om du skriver in aasah.com/hidden.php i adressfältet, och se om det är källkoden eller något annat du får upp.

Medlem sedan maj 200010 687 inlägg
#7

Men gjorde RIAA så för att ingen skulle hitta dit?
För i så fall var de ganska korkade när de gav mappen namnet RIAA. :)

Medlem sedan maj 20018 027 inlägg
#8

Erik Juhlin skrev:

Men gjorde RIAA så för att ingen skulle hitta dit?
För i så fall var de ganska korkade när de gav mappen namnet RIAA. :)

Jag tolkade det som att de gav mappen namnet admin, fast det är ju ännu mer korkat.

Medlem sedan mars 20034 471 inlägg
#9

Tackar för alla svar!!! :D Det här var sannerligen en tankeväckande tråd!!! Det var alltså, precis som jag misstänkte, inte världens bästa råd... (Läste det på ett annat dataforum för ca ett och ett halvt år sedan, svar till någon annan, och trots min skepticism för förslaget så kom jag ihåg det.)

tydal skrev:

... Vanliga misstag är att man har någon länk utåt på den dolda sidan och när man klickar på en länk så skickas automatiskt adressen på sidan där länken finns till den server har hand om webbsidan som länken går till. ...

Tack för upplysningen! Det här hade jag ingen aning om! Känns som att det kan vara bra att veta det.

tydal skrev:

:o En annan vanlig miss är att man tar upp filen/katalogen i robots.txt för att man inte vill att sökmotorerna ska hitta den. Men vem som helst kan ju kolla på robots.txt. ....

Intressant! Vad i himlens namn gör då robots.txt för nytta?? :(

UlfT skrev:

Utan att ha alltför stor inblick i säkerhet, skulle jag resonera som så; det är webservern som får en förfrågan om att visa hidden.php om nu surfaren gissar sig till det namnet. Eftersom webservern är konfigurerad till att exekvera kod i filer med suffixet php, kommer den att exekvera den kod som finns där, och skicka resultatet, vilket är något helt annat än själva källkoden. Alltså har inte källkoden avslöjats.

Nej, under förutsättning at PHP-daemonen(?) inte slutar funka så kommer ingen åt källkoden. Om det skulle hända har jag inte riktigt klart för mig vad som blir följden? Min PHP-bok var minst sagt otydlig på den punkten. (I princip stod det väl att om sidan hette .php så var risken mycket liten... men, tja jag vet alltså inte vad som visas då.) Den risken får man väl å andra sidan ta, misstänker jag...

Nu var det inte källkoden jag ville skydda. Utan mina egna första stapplande steg i samspråk med en MySQL databas... Ifall något inte funkar kan det vara trevligt att våga be om utförliga felutskrifter... men det har ju sina sidor om fler än jag kan riskera att läsa dem... :( Alltså medan jag utvecklar sidan, eller vidareutvecklar den.

UlfT skrev:

... Jag tror att en viktigare säkerhetsåtgärd än att gömma php-filer, är att hålla koll på vilka data som matas in i formulär och genom query-strängar. Det är säkert betydligt vanligare att folk försöker med sql-injection och liknande.

Tack för påpekandet! :) Jag är helt och fullt på det klara med detta behov (men det kan ju inte du veta). Det skiljer sig ju inte så mycket från andra programspråk. Kollar man inte indata blir man för eller senare rökt... Då är det är värre med de delar som ligger utanför den kunskap jag har idag.

UlfT skrev:

... Jag föreslår att du själv försöker "hacka" din sida med de metoder som du misstänker fungerar. ...

Visst... och när jag, blåbäret på Internet, inte kan passera spärrar som jag själv skrivit så är förståss sidan säker... ;) :x Nej tack! Då tror jag mer på att kolla diverse hypoteser innan jag börjar tillämpa dem...

tydal skrev:

Förresten kan man lösenordsskydda sidor med hjälp av Php, så det där borde inte vara ett problem för dig. Det enklaste är ju att du använder dig av ett formulär där man får fylla i lösenordet och sedan kollar Php vad man har skrivit och jämför med det lösenrod du har bestämt. Stämmer det så skapar den en session, och stämmer det inte så gör den inte det. På sidan som ska vara skyddad kollar du om den sessionen finns och skickar tillbaks besökaren till inloggningen om den inte finns.

http://se.php.net/session

Tack för tipset! :D Jag ska läsa på om detta!

Förmodligen krånglar jag till det något otroligt nu, men... Lösenord ska ju inte stå - ens i källkoden - i klartext. Så det bästa vore om man hämtade lösenordet från en speciell tabell i databasen för detta ändamål, väl? :q Hur ser man då till att skapandet av den tabellen och det lösenordet endast körs av mig och inte av några till, som passar på att lägga in egna lösenord...? :q Hoppas att ni har lite tålamod att ta av... frågan är antagligen idiotisk.

Medlem sedan aug. 20002 975 inlägg
#10

Lösenord och liknande typ anslutningsuppgifter till MySQL kan med fördel läggas i en fil utanför webbroten, för att sedan inkluderas vid behov.

Medlem sedan feb. 200115 571 inlägg
#11

aasah skrev:

Intressant! Vad i himlens namn gör då robots.txt för nytta?? :(

Man har den till att tala om för sökmotorer vad som inte skall listas hos dem.

Medlem sedan mars 20034 471 inlägg
#12

SirPeter skrev:

aasah skrev:

Intressant! Vad i himlens namn gör då robots.txt för nytta?? :(

Man har den till att tala om för sökmotorer vad som inte skall listas hos dem.

Joo, men jag menar... om allt man inte vill ska listas där, därmed är synligt för vemhelst som kollar denna textfil... vad har man då vunnit? Finns det inte en möjlighet att slänga in någon rad i varje fil som i princip säger "Stick!" till sökmotorerna? Eller har jag drömt det...?

Medlem sedan juni 20034 013 inlägg
#13

aasah skrev:

Intressant! Vad i himlens namn gör då robots.txt för nytta?? :(

Den är till för sidor som ska vara synliga för besökarna men inte för sökmotorerna. Jag har ett sådant exempel på min hemsida. Den här sidan har jag "skyddat" från sökmotorerna av praktiska skäl:
http://www.tydal.nu/se/google/

aasah skrev:

Utan mina egna första stapplande steg i samspråk med en MySQL databas... Ifall något inte funkar kan det vara trevligt att våga be om utförliga felutskrifter... men det har ju sina sidor om fler än jag kan riskera att läsa dem... :( Alltså medan jag utvecklar sidan, eller vidareutvecklar den.

Du kan ju göra så att du skickar felmeddelandet till dig själv i e-post. Se funktionerna mysql_error och mail.

aasah skrev:

Förmodligen krånglar jag till det något otroligt nu, men... Lösenord ska ju inte stå - ens i källkoden - i klartext. Så det bästa vore om man hämtade lösenordet från en speciell tabell i databasen för detta ändamål, väl? :q

Fast då måste du ju ha lösenordet till databasen i filen istället, så du bara flyttar på problemet. Vad som däremot är viktigt i det här läget är att lösenorden man skriver ut inte går att använda till så mycket. Du ska inte använda lösenordet på andra ställen och sen ska ju dataasen vara konstruerad så att lösenordet inte går att använda till något annat än det som behövs av skriptet.

Medlem sedan juli 20013 378 inlägg
#14

/red - sorry - my mistake :r

Medlem sedan juni 20034 013 inlägg
#15

aasah skrev:

Finns det inte en möjlighet att slänga in någon rad i varje fil som i princip säger "Stick!" till sökmotorerna? Eller har jag drömt det...?

Det är möjligt att du drömt det, men i så fall var det en sanndröm :-)

<meta name="robots" content="noindex">

Medlem sedan mars 20034 471 inlägg
#16

tydal skrev:

.... Fast då måste du ju ha lösenordet till databasen i filen istället, så du bara flyttar på problemet. ...

Fast... det måste jag väl under alla omständigheter ha, hur ska jag annars kunna ansluta till databasen om det nu är jag som har loggat in? Eller menar du att det ligger i en annan fil?

tydal skrev:

aasah skrev:

Finns det inte en möjlighet att slänga in någon rad i varje fil som i princip säger "Stick!" till sökmotorerna? Eller har jag drömt det...?

Det är möjligt att du drömt det, men i så fall var det en sanndröm :-)

<meta name="robots" content="noindex">

Tackar! Det ligger var i filen? I head? Ovanför? Högst upp i body? :q

Medlem sedan juni 20034 013 inlägg
#17

Head.

Medlem sedan mars 20034 471 inlägg
#18

tydal skrev:

Head.

Tack! :D

Ska läsa på om sessions och att maila felmeddelanden innan jag börjar hacka ihop något... :D

Medlem sedan mars 20034 471 inlägg
#19

Vilka tecken är det man ska se upp med i indata gällande:
* användarnamn
* lösen
* vanlig text
(ifall det skiljer sig åt)? Allt är avsett att kollas mot/läggas in i en (My)SQL databas.

' kan indikera SQL Injections om jag fattat rätt? Men är det det enda tecknet man inte vill ska finnas (eller måste escape:as)?

Medlem sedan mars 20034 471 inlägg
#20

Att man måste kolla upp all indata till skript som förväntar sig GET- eller POST-värden har jag klart för mig. Men vad gäller för sidor som INTE förväntar sig dylik indata? Behöver man kolla ev. GET/POST-värden ändå, eller vet man att ev skräp som läggs till sådana sidor är ofarligt?

Dvs kan någon ställa till säkerhetsproblem genom att lägga på försök till SQL Injections eller javascript-kommandon eller annat skräp till filer som inte använder GET (eller POST) variabler? Dvs "körs" url:n någon annanstans än av mitt skript i processen att skicka sidor mellan klient och server eller tvärtom???

271 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)