Säkerhetsfrågor

  • Författare
  • Meddelande
Användarvisningsbild

litemerafrukt

troubleshooter

  • Inlägg: 262
  • Blev medlem: 01 sep 2015, 09:27
  • Ort: Lund

Säkerhetsfrågor

Inlägg16 sep 2016, 11:40

Hej!

Jag har lite funderingar om hur jag kan säkra upp min webbapp en aning.

Vad det är:
En webbapp i php med ett formulär som skall fyllas i dagligen av användaren. Denna information sparas ner i en sqlite-databas. Det går endast att se senaste dagens formulärdata (för att kunna ändra den). Ingenstans i appen kan man komma åt annat än dagens formulär (om man inte lyckas ändra systemets datum :? )

När jag skulle lägga upp appen på digital ocean lade jag sqlite-filen utanför web-root men för att kunna öppna den behövde jag ändra behörighet. Kort om tid gjorde jag en klassiker och gjorde sqlite-filen + katalogen läs och skrivbar för alla.

Den ende som kan (ska kunna :) ) logga in på debiansystemet på denna droplet är jag och endast med SSL-nycklar från min favoritlaptop (lösenord är inte tillåtna).

Övriga "användare" på debiansystemet är en irc-bouncer (znc).

Från och till lägger jag upp andra webbappar, oftast gjorda i PHP eller node, på samma server.

Jag vill ogärna att sqlite-databasen där formulärdatan samlas ihop ska kunna hamna i orätta händer. Den innehåller egentligen inget direkt användbart eller spännande men innehållet kan betraktas som privat och ska bara läsas av ett fåtal personer.

Min första fråga är om det gör någon praktisk skillnad för säkerheten om jag ändrar rättigheter så att det bara är root och "apache-användaren" som har läs och skrivrättigheter.

De andra frågorna är lite luddigare. Finns det några väl kända fallgropar som jag borde känna till? Är det något jag ska kolla upp i apache-inställningarna? Tjänar det nånting till att lägga databasen utanför web-root? Har jag lite hål i huvudet när jag väljer en sqlite-databas? Ska jag lägga sådana här lite känsligare web-appar på en egen server (där jag inte har andra test-projekt med möjliga/förmodade säkerhetshål)?

//Anders
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Säkerhetsfrågor

Inlägg16 sep 2016, 11:57

Jag har inte svar på alla frågorna, men lite tankar.

Om det är viktigt att bara kunna kolla dagens datum är det servern som ska ha koll på vad "dagens datum" är. Klienter kan ändras på. Oklart vad du syftade på med "systemet".

Om du gör filen läsbar för det här projektet kommer det även vara läsbart för andra projekt på samma server, tror jag. Jag tror att det är en brist i Apache, som jag har för mig att andra webbservrar, som nginx, löser bättre. Har inte gjort någon källkontroll på detta så jag kan ha fel. Detta förändras inte av att byta användare/grupp på filen, eftersom det bara finns en apache-användare och den kommer användas av alla projekt på samma server.

Fördelen med att lägga databasen utanför webbrooten är att man inte kan navigera till den med adressfältet. Det är bra.

För mer generella fallgropar kan du kanske skumma igenom OWASPs topplista.
Användarvisningsbild

litemerafrukt

troubleshooter

  • Inlägg: 262
  • Blev medlem: 01 sep 2015, 09:27
  • Ort: Lund

Re: Säkerhetsfrågor

Inlägg17 sep 2016, 09:51

Jo jag använder serverns klocka/datum. Det är debian-servern som avses med systemet.

Av ditt svar går tankarna åt att det kan vara ett lämpligt tillfälle att lära sig nginx :) och att tills dess snurra upp en ny droplet där jag bara kör "produktion" projekt.

Fast först ska jag ta och plugga toplistan.

Tack för ditt svar :)
Online
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11059
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Säkerhetsfrågor

Inlägg19 sep 2016, 15:42

litemerafrukt skrev:Min första fråga är om det gör någon praktisk skillnad för säkerheten om jag ändrar rättigheter så att det bara är root och "apache-användaren" som har läs och skrivrättigheter.


Ja, det är bra. Den som vill ha filen behöver nu fixa root/apache på din maskin. Tidigare räckte det att de kunde logga in på maskinen med godtyckligt användare.

Om det spelar roll i praktiken beror väl på hur svårt det var att få tag i en annan användare på maskinen.

litemerafrukt skrev:De andra frågorna är lite luddigare. Finns det några väl kända fallgropar som jag borde känna till? Är det något jag ska kolla upp i apache-inställningarna? Tjänar det nånting till att lägga databasen utanför web-root? Har jag lite hål i huvudet när jag väljer en sqlite-databas? Ska jag lägga sådana här lite känsligare web-appar på en egen server (där jag inte har andra test-projekt med möjliga/förmodade säkerhetshål)?


Vill man ha det lite mer säkert så bör man inte köra andra saker på maskinen utan man dedikerar en egen maskin till tjänsten. Andra tjänster kan erbjuda säkerhetshål som man inte direkt kan överblicka.

SQLIte som data bas är helt okey, även om det är en fil och om någon vill ladda ned hela databasen så räcker det att de får tag på filen. Den aspekten finns inte i MySQL.

Lägg alla filer utanför webrooten som inte behövs där. Bra grundregel. Även om det direkt inte behöver vara ett problem.
...
..:
.... /mos

Vilka är online

Användare som besöker denna kategori: Google [Bot] och 12 gäster