Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  6 2874
Jeg pusler litt med html/php samt mysql. Dette er bare et lite hobbyprosjekt der jeg ønsker å sette meg litt inn i hva alt dette går ut på, så kunnskapene mine er begrenset. Derfor spør jeg dere.

Jeg har noen filer jeg ønsker å kunne skjule men de må likevel kunne kjøres. Dette er kanskje litt motsigende da de nødvendigvis må kunne leses for å kjøres, men håper det er noe man kan gjøre for å hindre nysgjerrige øyne litt.

Det første er et bash-script som ligger under

Kode

/www/html/script.sh
Her har jeg bl.a. en token id som jeg ikke vil vise fram til alle og enhver.

I tillegg kunne jeg ønske å skjule informasjonen i

Kode

/www/html/sql/connect.php
Brukeren av databasen har kun tilgang fra localhost, men vil likevel gjemme dette litt.
Som dere ser har jeg lagt ting som omhandler sql under /www/html/sql/ Det er kanskje ikke noe sjakktrekk i seg selv, da det er ganske enkelt å gjette seg fram til, men jeg vet ikke om dette i realiteten har noe å si. Tanken med egen mappe var for ryddighetens skyld.

Ellers kan jeg nevne at filtillatelser er som følger(ikke store prosjektet

Kode

-rw-r-x--- 1 www-data www-data  311 Oct  4 09:52 index.css
-rw-r-x--- 1 www-data www-data 4.0K Oct 14 05:49 index.php
drwxr-x--- 2 www-data www-data 4.0K Oct 14 04:43 sql

Kort sagt trenger jeg noen råd for best practice når det gjelder filtillatelser, mapper, navn på filer og så videre.

På forhånd takk!
Trigonoceps occipita
vidarlo's Avatar
Donor
Kven skal du skjule det ifrå?

Best practice er jo sjølvsagt så lite rettigheter som mulig. Detaljane kjem åpenbart an på oppsettet. Du kan t.d. oppnå veldig mykje med SELinux eller AppArmour, men det tar ein del tid å sette opp. Det finst suid-moduler for apache som kan hindre tilgang til andre brukere sine ting på shared hosting, men det er ikkje relevant på dedikert boks, også viare...
Sist endret av vidarlo; 14. oktober 2018 kl. 15:09.
Undersått
Trådstarter
Dette er en ubuntu server og det er ikke aktuelt for meg å bytte ut kernel her. Jeg gir jo uttrykk for at jeg er nybegynner, og jeg er med andre ord ikke ute etter noen veldig avanserte løsninger.

Jeg ønsker vel bare at noe av informasjonen i backend ikke skal være altfor enkel å nå. Nå vet jo jeg hva mapper og filer heter, men likevel, bare man angir addressen så er jo alt lesbart.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av sprett Vis innlegg
Jeg ønsker vel bare at noe av informasjonen i backend ikke skal være altfor enkel å nå. Nå vet jo jeg hva mapper og filer heter, men likevel, bare man angir addressen så er jo alt lesbart.
Vis hele sitatet...
For det første vil jo ikkje kildekoden i PHP-filer bli vist om du har konfigurert webserveren din rett. Den vil vise output frå PHP. Dvs. at variabler og alt slikt ikkje er synleg. Om det ikkje er tilfelle har du konfigurert webserveren feil.

Uansett er det ingen grunn til at configfiler skal vere tilgjengeleg over HTTP. Plasser dei utanfor webroot, eller hiv på ein directory-stanza som forbyr tilgang

Kode

<Directory "/var/www/config/">
    Require all denied
</Directory>
Om du plasserer dei utanfor webroot, men ein plass apache-brukeren har lesetilgang kan du fortsatt lese dei med include().

Forøvrig treng du ikkje å bytte kjerne på Ubuntu for AppArmour. Meg bekjent støtter Ubuntu AppArmour by default, og bruker det på t.d. MySQL. Viare er det første du må gjere å definere opp trusler, for å kunne beskytte deg mot dei. Det er stor skilnad på å beskytte seg mot ein som har eit lokalt shell og ein som kun har tilgang via HTTPS.

Pathnames er ikkje noko eg hadde gidda å bruke energi på å skjule. Om pathnames røper kritisk informasjon om applikasjonen din har du gjort ting feil uansett.
Sist endret av vidarlo; 14. oktober 2018 kl. 15:34.
Undersått
Trådstarter
Sitat av vidarlo Vis innlegg
For det første vil jo ikkje kildekoden i PHP-filer bli vist om du har konfigurert webserveren din rett. Den vil vise output frå PHP. Dvs. at variabler og alt slikt ikkje er synleg. Om det ikkje er tilfelle har du konfigurert webserveren feil.
Vis hele sitatet...
Ja, det er jeg fullt klar over, og det er ikke det som er problemet. Som jeg har gitt uttrykk for så er bl.a. et bash-script med token fullt lesbart om man har navnet på filen.

Sitat av vidarlo Vis innlegg
Uansett er det ingen grunn til at configfiler skal vere tilgjengeleg over HTTP. Plasser dei utanfor webroot, eller hiv på ein directory-stanza som forbyr tilgang

Kode

<Directory "/var/www/config/">
    Require all denied
</Directory>
Om du plasserer dei utanfor webroot, men ein plass apache-brukeren har lesetilgang kan du fortsatt lese dei med include().
Vis hele sitatet...
Flott, jeg vil tro dette er det jeg er ute etter!

Sitat av vidarlo Vis innlegg
Forøvrig treng du ikkje å bytte kjerne på Ubuntu for AppArmour. Meg bekjent støtter Ubuntu AppArmour by default, og bruker det på t.d. MySQL. Viare er det første du må gjere å definere opp trusler, for å kunne beskytte deg mot dei. Det er stor skilnad på å beskytte seg mot ein som har eit lokalt shell og ein som kun har tilgang via HTTPS.
Vis hele sitatet...
Trusselen er vel ukjent, da jeg ikke vet hvem som skulle ha interesse av å lete etter dette. Det kan potensielt være alle som besøker siden(som inntil videre kun er meg selv og kinesiske hackere) Det er litt derfor jeg spurte etter best practice, ingen grunn til å gjøre ting på feil måte uansett størrelse på prosjekt. Forøvrig har jeg ikke SSL sertifikat enda da jeg har forstått det slik at man må ha domene for dette.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av sprett Vis innlegg
Ja, det er jeg fullt klar over, og det er ikke det som er problemet. Som jeg har gitt uttrykk for så er bl.a. et bash-script med token fullt lesbart om man har navnet på filen.
Vis hele sitatet...
Kvifor i alle dager har du det liggande i webroot?
Sitat av sprett Vis innlegg
Trusselen er vel ukjent, da jeg ikke vet hvem som skulle ha interesse av å lete etter dette.
Vis hele sitatet...
Nei, du misforstår meg nok litt Eg snakker ikkje om å finne ut kven som kan angripe deg, men generelle trusler.

For å oversette det til eit fysisk perspektiv: er du redd for at naboen tilfeldig skal snoke i postkassen din for å sjå om du får inkassovarsel, eller er du redd for at kriminelle skal stjele verdifull post? Ein nille-lås til en tier vil gjerne halde naboen ute frå postkassa, men vil ta kriminelle tre sekunder å klippe.

Om det er dedikert maskinvare har du t.d. ikkje trusselen frå andre brukarar med legitim tilgang, men som kan utnytte det for å få tilgang til ting dei ikkje skal ha tilgang til.

Du kan, ut frå det eg forstår, begrense deg til angrep som kan foregå via webserveren. Då kan du t.d. ta opp feilkonfigurert webserver, som kan gi tilgang til ting i webroot den ikkje skulle gitt tilgang til - og eit mottiltak kan vere å flytte ting ut av webroot.
Sitat av sprett Vis innlegg
Det er litt derfor jeg spurte etter best practice, ingen grunn til å gjøre ting på feil måte uansett størrelse på prosjekt.
Vis hele sitatet...
Så generelt som du har spurt er altså best practice så få privilegier som mulig, og så lite tilgang som mulig
Sist endret av vidarlo; 14. oktober 2018 kl. 16:05.
Undersått
Trådstarter
Sitat av vidarlo Vis innlegg
Kvifor i alle dager har du det liggande i webroot?
Vis hele sitatet...
Vel.. Kunnskap er vel et stikkord her.

Sitat av vidarlo Vis innlegg
Nei, du misforstår meg nok litt Eg snakker ikkje om å finne ut kven som kan angripe deg, men generelle trusler.

For å oversette det til eit fysisk perspektiv: er du redd for at naboen tilfeldig skal snoke i postkassen din for å sjå om du får inkassovarsel, eller er du redd for at kriminelle skal stjele verdifull post? Ein nille-lås til en tier vil gjerne halde naboen ute frå postkassa, men vil ta kriminelle tre sekunder å klippe.

Om det er dedikert maskinvare har du t.d. ikkje trusselen frå andre brukarar med legitim tilgang, men som kan utnytte det for å få tilgang til ting dei ikkje skal ha tilgang til.

Du kan, ut frå det eg forstår, begrense deg til angrep som kan foregå via webserveren. Då kan du t.d. ta opp feilkonfigurert webserver, som kan gi tilgang til ting i webroot den ikkje skulle gitt tilgang til - og eit mottiltak kan vere å flytte ting ut av webroot.
Vis hele sitatet...
Neida, jeg kjører ikke webserver på en vanlig klient, det er en VPS det er snakk om her. Og hva VPS tilbyderen måtte finne på bekymrer meg ikke. Jeg tok det kanskje for gitt at alle skjønte det var en server det var snakk om.


Sitat av vidarlo Vis innlegg
Så generelt som du har spurt er altså best practice så få privilegier som mulig, og så lite tilgang som mulig
Vis hele sitatet...
Det er jo innlysende. Hadde jeg hatt anelse om at jeg skulle spesifikt spurt om å flytte ting fra webroot så hadde jeg gjort det. Men jeg har aldri satt opp en webside for, og ante ikke hvor man helst plasserer ting.

Men, jeg kan meddele at nå får jeg 403 forbidden om jeg prøver å angi addressen til config, og mysql fungerer som det skal. Og jeg har lært hvordan man "skjuler filer/mapper".

Takker og bukker!