čaute chalani,
robím môj prvý web vo Vue.js a mám spravenú api v PHP....uplne simple ktorá mi vytiahne z db potrebné veci - výstup je JSON a potom ich zobrazujem na stránke...
a takisto cez ňu ešte insertujem do db...ale na insert používam iba klasicky :
INSERT INTO tableName (something, something2)
VALUES ('".$something."', '".$something2.")";
nikde nemám insert so slovom WHERE
je to takto bezpečné? nemôže mi niekto dropnúť table?
a ďalšia otázka oplatí sa to prepisovať cele do nejakeho mvc frameworku? je to cca 10 suborov kazdy ma 15-20 riadkov ...inserty viac
tam kde fetchujem dáta z DB tak to má do 10 riadkov vzdy ten script...
uz momentálne rozumiem mvc-čku, keď som s tým začínal nemal som ani poňatie o čo ide....viem že teraz by na to všetko stačil jeden controller a jeden model...
Autoeditácia príspevku po 43 min 20 sek:
ok tak to asi upravim...nejako takto... či?
$SQLquery = "INSERT INTO tableName VALUES something = ?, something2 = ?";
$query = $conn->query($SQLquery, array($something, $something2));
api - moja prvá
-
94jakub
Guru wannabe
- Príspevky: 2037
- Registrovaný: 15 dec 2006, 13:18
- Bydlisko: Martin/BA
- Kontaktovať používateľa:
Re: api - moja prvá
WHERE sa pri inserte nepoužíva. Ani neviem, čo by si chcel pomocou neho docieliť?
Nemá to nič s bezpečnosťou. To aby ti cez to nikto nedropol tabuľku, ošetríš tak, že nebudeš manuálne skladať query string ale spravíš to pomocou nejakej funkcie, ktorú ti ponúka konkrétny jazyk/knižnica. Napr. tak ako si napísal v edite, skús si v dokumentácii pozrieť či ťa query() funkcia zároveň robí aj character escaping. Inak sa to volá SQL injection a na nete toho nájdeš mrte.
Asi tomu mvc až tak úplne nerozumieš, keď si vieš predstaviť to do toho prerobiť.
Lebo pri (REST) API to nedáva zmysel a vo svojej podstate ani nijako nesúvisí s DB, s ktorou to tak trochu spájaš. Samozrejme tie frameworky väčšinou majú aj hromadu ďalších funkcií, ktoré ti umožňujú jednoduchšie celú tú aplikaciu napísať, ľahšie definovať endpointy, pripravené spracovanie vstupov či už z query alebo body pri requestoch, autentifikáciu ale trebárs možno aj ORM, ktoré vieš využiť pri tej DB vrstve a mnohé ďalšie.
Čiže tak ako využívaš napr. ten vuejs a nepíšeš to v čistom js všetko, vieš vyriešiť aj to api pomocou nejakého frameworku.
To či to použiješ je na tebe, záleží čo sa chceš naučiť. Či ti ide len o to sa naučiť niečo spraviť vo frameworku, alebo len tak nejako ručne zbúchať čosi čo funguje, alebo sa to naučiť robiť dobre, alebo pochopiť tie základy ako to funguje a vedieť potom aj ako ten framework funguje na pozadí.
Nemá to nič s bezpečnosťou. To aby ti cez to nikto nedropol tabuľku, ošetríš tak, že nebudeš manuálne skladať query string ale spravíš to pomocou nejakej funkcie, ktorú ti ponúka konkrétny jazyk/knižnica. Napr. tak ako si napísal v edite, skús si v dokumentácii pozrieť či ťa query() funkcia zároveň robí aj character escaping. Inak sa to volá SQL injection a na nete toho nájdeš mrte.
Asi tomu mvc až tak úplne nerozumieš, keď si vieš predstaviť to do toho prerobiť.
Lebo pri (REST) API to nedáva zmysel a vo svojej podstate ani nijako nesúvisí s DB, s ktorou to tak trochu spájaš. Samozrejme tie frameworky väčšinou majú aj hromadu ďalších funkcií, ktoré ti umožňujú jednoduchšie celú tú aplikaciu napísať, ľahšie definovať endpointy, pripravené spracovanie vstupov či už z query alebo body pri requestoch, autentifikáciu ale trebárs možno aj ORM, ktoré vieš využiť pri tej DB vrstve a mnohé ďalšie.
Čiže tak ako využívaš napr. ten vuejs a nepíšeš to v čistom js všetko, vieš vyriešiť aj to api pomocou nejakého frameworku.
To či to použiješ je na tebe, záleží čo sa chceš naučiť. Či ti ide len o to sa naučiť niečo spraviť vo frameworku, alebo len tak nejako ručne zbúchať čosi čo funguje, alebo sa to naučiť robiť dobre, alebo pochopiť tie základy ako to funguje a vedieť potom aj ako ten framework funguje na pozadí.
Re: api - moja prvá
jaj vlastne ja debil, áno je to pravda WHERE sa pri inserte nepoužíva to nechapem čo som sem dal 
ano chapem ze mvc nedáva zmysel ale potrebujem v nom robirt aby som sa ho naucil...tak pri api nebudem používať view...
len colntroller a model...no šak vlastne už to mám prerobené...
ano chapem ze mvc nedáva zmysel ale potrebujem v nom robirt aby som sa ho naucil...tak pri api nebudem používať view...
len colntroller a model...no šak vlastne už to mám prerobené...
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: api - moja prvá
tak view pri API moze byt response ... tzn ci to bude nejaky json, xml alebo ktovie co .. controller len nahadze potrebne data do view, nastavi typ vystupu a view uz len vyrendruje string, co sa vrati volajucemu
ale zase nie je dobre to MVC na silu tlacit vsade ... najma pri weboch sa to velmi malo v praxi oplati ... na tvojom mieste by som si pozrel hlavne to ORM, to k APInam celkom dava zmysel a zbavis sa tym aj manualnym skladanim SQL dopytov, cim znizis riziko zanesenia injekcie
ale zase nie je dobre to MVC na silu tlacit vsade ... najma pri weboch sa to velmi malo v praxi oplati ... na tvojom mieste by som si pozrel hlavne to ORM, to k APInam celkom dava zmysel a zbavis sa tym aj manualnym skladanim SQL dopytov, cim znizis riziko zanesenia injekcie
Re: api - moja prvá
mam to tak spravené že len controller zavola model ...ten vykoná dopyt v DB a returne result a potom ho v kontroleri v metode len vypíšem cez echo json_encode(); vôbec tu view nepoužívam...
neviem no príde mi to prehladnejšie takto keď to mám... asi aj do buducna keď sa do toho pozrie niekto iný ako ja...
neviem no príde mi to prehladnejšie takto keď to mám... asi aj do buducna keď sa do toho pozrie niekto iný ako ja...