Eigen API Maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

 - Diov  -

- Diov -

23/08/2013 16:39:25
Quote Anchor link
Ja, maar dan kunnen ze ook heel de database leegplunderen, of het wachtwoord opvragen, ook al is die versleuteld.

Dus hoe voorkom je dit dan? Beetje zoals facebook, daar kan je fql's maken.
Linkje -> https://developers.facebook.com/docs/reference/fql/
 
PHP hulp

PHP hulp

17/11/2024 18:24:24
 

23/08/2013 16:41:21
Quote Anchor link
Ik denk door de databasen een moeilijke naam te geven? Door bijvoorbeeld de tabel 'users' te veranderen naar 'site_special_us3rs' etc.
 
Chris -

Chris -

23/08/2013 17:17:06
Quote Anchor link
security through obscurity.... Je queries beveiligen, api authenticatie inschakelen (dus bijv. met die keys idd) en bovenal je data beveiligd versturen met public/private key.

#1 - never trust user input. houdt dat in gedachten ;-)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/08/2013 19:05:39
Quote Anchor link
- Diov - op 23/08/2013 16:39:25:
Ja, maar dan kunnen ze ook heel de database leegplunderen, of het wachtwoord opvragen, ook al is die versleuteld.

Dus hoe voorkom je dit dan? Beetje zoals facebook, daar kan je fql's maken.
Linkje -> https://developers.facebook.com/docs/reference/fql/


Natuurlijk niet!
Jouw PHP api pagina is de firewall in deze zaak. Met data UIT de database bepaal JIJ wat wel en niet mag worden verzonden. Met data IN (delete, insert en update) moet je zo goed mogelijk jezelf beschermen door een zogenaamde whitelist aan te houden (een lijst waarin staat wat toegestaan is) en door jezelf tegen sql injectie te beschermen.

een voorbeeldje om jezelf te beschermen is dat een men alleen een gebruiker uit de eigen groep mag wijzigen. dat moet je allemaal in de code opnemen.

Een andere mogelijkheid is tevens om ellende te voorkomen dat je helemaal nooit geen records laat verwijderen maar enkel op nonactief zet aan de hand van een extra kolom met de naam 'active' (standaard true). wel moeten bestaande queries dan uitgebreid worden met 'WHERE `ACTIVE` > 0'
 
 - Diov  -

- Diov -

23/08/2013 19:56:55
Quote Anchor link
Het begint te werken!

Ik ben nu bezig met gebruikers te laten inloggen, maar dan kom ik op 1 probleem:
Kan ik cookies plaatsen?
 

23/08/2013 20:11:32
Quote Anchor link
Kijk hier maar ;)
Gewijzigd op 23/08/2013 20:11:43 door
 
 - Diov  -

- Diov -

23/08/2013 20:29:01
Quote Anchor link
@Frank,

Ik bedoel: Ik plaats cookies in de API, komen die dan ook op de browser van die api website?

Zoniet, hoe los ik dat dan op?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/08/2013 20:40:31
Quote Anchor link
ja je kan cookies en sessions gebruiken
 

23/08/2013 21:46:31
Quote Anchor link
Ik raad je sessies aan. Bij het wegklikken van de browser is alles verwijderd. Maak een sessie na het inloggen met login = yes en controleer dat op elke pagina.
 
Local Dev

Local Dev

23/08/2013 22:32:55
Quote Anchor link
Ik raad aan dat bij iedere request de sleutel moet worden meegestuurd voor autorisatie, en raad ten zeerste af om standaard sessies te gebruiken voor api's.
 
Michel W

Michel W

23/08/2013 23:26:29
Quote Anchor link
Als de api via curl gaat benaderen dan moet je volgens mij expliciet cookies aanzetten. Ik heb ooit een API moeten aansluiten die met cookies werkte, maar dat gaf wel problemen.

Verder leert de ervaring mij dat een API maken niet zo eenvoudig is zoals een aantal mensen doet voorkomen. Denk bijvoorbeeld aan versie beheer.

Als je een API wilt bouwen zal ik je adviseren om het zo dynamisch mogelijk te houden. Bijv met responseTypes te werken. Misschien wil klant A een XML terwijl B een json wil en weer een ander wilt misschien een opgemaakte html.

Denk ook eena aan desingpatterns die zijn ontzettend handig.
 
Local Dev

Local Dev

23/08/2013 23:31:59
Quote Anchor link
persoonlijk zou ik alleen HAL(Hypermedia Application Language) gebruiken voor het creëren van output voor een api.
 
 - Diov  -

- Diov -

26/08/2013 18:32:38
Quote Anchor link
Hoi!

Dat met cookies/sessies is opgelost!

@ Local
De sleutel wordt telkens meegegeven als men de api oproept, wat ik sowieso ging doen.
Kan je me wel uitleggen wat HAL precies is? Lijkt nogal ingewikkeld.

@ Michel,
Ik gebruik file_get_contents, en geen cUrl.

Idd, versie beheer is nogal vervelend,
maar ik denk dat je dan eerst zelf moet testen, welke functies niet meer werken etc.
Dan stuur je een mail naar degene die de API gebruikt, met de aanpassingen & dat ze het op één of andere manier kunnen oplossen.

Ik zal het op json houden voorlopig toch, tot ik de vraag krijg voor xml.
Weet niet echt wat designpatterns zijn, kan je het in het kort uitleggen aub?

Nu had ik ook nog een klein vraagje:
Stel, ik gebruik volgende functie om het wachtwoord te controleren als m'n iets wilt aanpassen aan hun gegevens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    public function checkpass($wachtwoord, $username) {

        $json = file_get_contents('http://grufle.com/api/api.php?key='.$this->key.'&action=checkpass&password='.$wachtwoord.'$username='.$username.'');
        return json_decode($json);
                
    }


?>


Zou ik dan best niet die gegevens versleutelen met de key?
En als de gegevens bij mij aankomen weer decrypten?

Of is dat overbodig?

Mvg,
Diov
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.