Avatar billede Jan Novice
29. februar 2024 - 08:05 Der er 8 kommentarer og
1 løsning

.htaccess til PHP API

Jeg er i gang med at lave et API i PHP.

Opgave: Jeg ønsker at beskytte mine filer til API på webhotellet så godt som muligt af sikkerhedsårsager. Til dette forstår jeg, at det er godt at anvende .htaccess (lad mig vide hvis jeg tager fejl). Hvordan gør jeg dette?

Filer:
public_html/A/api.php            // Fil med API kode der gemmer data i SQL
public_html/A/.htaccess
/config/config.php                  // Fil uden for web domæne som bla. indeholder
                                              // brugernavn og kode til SQL databasen

Funktion:
Brugeren af API'et sender en url streng som f.eks.
http://www.MinHjemmeside.com/api.php?value1=1&type=2
og API'et gemmer værdierne Value og type i SQL databasen. api.php kalder filen config/config.php som ligger på serveren men uden for web domænet, således at der ikke er direkte adgang til adgangskoderne til SQL databasen.
Alt dette virker fint.
Filerne ligger på webhotellet www.simply.com.

Spørgsmål:
Hvordan beskytter jeg min kode bedst? Jeg har prøvet flere ting mht public_html/A/.htaccess, men får fejl 403 lige så snart jeg aktiverer .htaccess filen. Når jeg fjerner .htaccess filen igen, så virker api'et fint.

Tillægsspørgsmål:
hvad skal fil og folder rettighederne være for /A/api.pgp, /A/.htaccess samt deres fælles folder?

Jeg håber nogen vil hjælpe med dette - jeg sidder klar til at teste.
Avatar billede erikjacobsen Ekspert
29. februar 2024 - 08:18 #1
Hvad er det du vil beskytte mod?
Avatar billede Jan Novice
29. februar 2024 - 08:27 #2
Tak for et godt spørgsmål. Mit problem er, at jeg ikke har så meget viden om server opsætning og hvilke forhold man skal tage højde for. Så jeg tænker at man skal beskytte sig imod brugerens mulighed for at se hvad api.php filen indeholder af php kode. Men jeg ved ikke om det giver mening? Kan man det og samtidigt give brugeren mulighed for at kalde/eksekvere php filen?
Avatar billede erikjacobsen Ekspert
29. februar 2024 - 08:39 #3
Brugerne, der tilgår din side eller API fra en browser eller via en HTTP-forbindelse, kan ikke se indholdet af PHP-filen. Den bliver netop udført, og ikke vist.

Det er usandsynligt, men teoretisk muligt, at webhotellet ved en fejl slår PHP-funktionaliteten fra. Så vises indholdet. Det bliver nok hurtigt opdaget og rettet.
Avatar billede Jan Novice
29. februar 2024 - 08:45 #4
Så jeg behøver altså ikke anvende .htaccess overhovedet i dette setup?

Hvilke fil og folder rettigheder vil du foreslå for folderen /A/ og /A/api.php?

Tænker du at det er en fin måde at beskytte brugernavn og adgangskode ved at have disse oplysninger uden for domæne området?
Avatar billede erikjacobsen Ekspert
29. februar 2024 - 08:58 #5
Igen: Hvad er det du vil beskytte mod?

Er det andre, der har adgang til din konto på webhotellet? Måske kan man have flere brugerkonti.

Er det brugere med en browser eller tilsvarende, der ikke må se indholdet af PHP-filen? Det kan de jo normalt slet ikke. En config.php udenfor web-filerne sikrer det, selv ved fejl på webhotellet.

Er det at andre kalder din api.php? Kaldes den fra browseren? Brugere kan kigge i HTML-koden i browseren, eller så HTTP-trafik, og kan se at din api.php bliver kaldt, og kan derefter selv kalde den med hvad parametre de selv finder på. Det kan man ikke forhindre - man kan ikke stole på hvad der kommer fra brugerne.

Eller ... ?
Avatar billede erikjacobsen Ekspert
29. februar 2024 - 09:01 #6
"eller så HTTP-trafik"  ---->  "eller se på HTTP-trafik"
Avatar billede Jan Novice
29. februar 2024 - 09:21 #7
God pointe.

Der er ikke andre end mig som har adgang til webhotellet.

Det er kun et spørgsmål om at undgå, at almindelige webbrugere med en browser kan se min php kode.

Grunden til at jeg ikke vil have, at andre kan se min PHP kode er, at jeg vil lægge et filter ind i PHP koden som gør, at kun bestemte værdier accepteres. Dette vel vidende, at andre kan "opsnuse" og bruge samme værdier (det ser jeg ikke som noget generelt problem). Det vil derfor være en fordel, hvis brugerne ikke umiddelbart kan se min php kode, og dermed umiddelbart se hvilke filtre jeg anvender.

Jeg håber det giver mening?
Avatar billede erikjacobsen Ekspert
29. februar 2024 - 09:28 #8
Med de krav så skal du ikke lave noget om.
Avatar billede Jan Novice
29. februar 2024 - 09:30 #9
Super, mange tak for din tid og tålmodighed.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester