Hoe om `n SQL-inspuiting in PHP te vermy
Met hierdie wikiHow-gids sal jy leer hoe om `n SQL-inspuiting te vermy met behulp van sinne wat in PHP voorberei is. Vandag is SQL-inspuitings een van die mees algemene kwesbaarhede van webtoepassings. Gereelde stellings gebruik gekoppelde parameters en kombineer nie veranderlikes met SQL-strings nie, wat dit onmoontlik maak vir `n aanvaller om `n SQL-stelling te verander.
Die voorbereide stellings kombineer die veranderlikes met die saamgestelde SQL-stellings. Op hierdie manier word die SQL-stellings en die veranderlikes afsonderlik gestuur. Die veranderlikes word dan as eenvoudige snare geïnterpreteer en nie as deel van `n SQL-stelling nie. As die metodes van die stappe wat hieronder verduidelik word, toegepas word, is dit nie nodig om enige ander tipe SQL-inspuiting-filtertegniek te gebruik nie, soos mysql_real_escape_string ().
conținut
stappe
Deel 1
Verstaan wat SQL inspuiting is
$ name = $ _GET [`gebruikersnaam`] - $ query = "SELECT wagwoord VAN tbl_user WAAR naam = `$ name` "-
$ name = "admin `OF 1 = 1 - "- $ navraag = "SELECT wagwoord VAN tbl_user WAAR naam = `$ name` "-
SELECT wagwoord VAN tbl_users WAAR naam = `admin` OF 1 = 1 - `
Deel 2
Gebruik mySQLi om voorbereide stellings te skep
Gebruik die onderstaande kode om (SELECT) data uit `n tabel te selekteer deur gebruik te maak van `n stelling wat met mySQLi voorberei is.
$ name = $ _GET [`gebruikersnaam`] - as ($ stmt = $ mysqli->berei voor"SELECT wagwoord VAN tbl_users WAAR naam =?")) {// Sluit aan by `n veranderlike met die parameter as string $ stmt->bind_param ("s", $ name) - // Uitvoering van die sin $ stmt->uitvoer () - / Kry die veranderlikes van die navraag $ stmt->bind_result ($ pass) - // Vind die data $ stmt->haal () - / Wys die dataprintf ("Die gebruiker se wagwoord% s is% s n", $ naam, $ slaag) - // Sluit die voorbereide stelling $ stmt->naby () -}
- Nota: die veranderlike $ mysqli is die verbindingsvoorwerp van mySQLi.
$ name = $ _GET [`gebruikersnaam`] - $ wagwoord = $ _GET [`password`] - as ($ stmt = $ mysqli->berei voor"INSERT IN tbl_users (naam, wagwoord) WAARDES (?,?)")) {// Koppel die veranderlikes na die parameter as snare $ stmt->bind_param ("ss", $ naam, $ wagwoord) - // Doen die sin $ stmt->voer () - / Sluit die voorbereide stelling $ stmt->naby () -}
$ name = $ _GET [`gebruikersnaam`] - $ wagwoord = $ _GET [`password`] - as ($ stmt = $ mysqli->berei voor"UPDATE tbl_users SET wagwoord =? WAAR naam =?")) {// Koppel die veranderlikes na die parameter as snare $ stmt->bind_param ("ss", $ wagwoord, $ naam) - // Doen die sin $ stmt->voer () - / Sluit die voorbereide stelling $ stmt->naby () -}
$ name = $ _GET [`gebruikersnaam`] - $ wagwoord = $ _GET [`password`] - as ($ stmt = $ mysqli->berei voor"Vee uit tbl_users WAAR naam =?")) {// Sluit aan by `n veranderlike met die parameter as string $ stmt->bind_param ("s", $ name) - // Uitvoering van die sin $ stmt->voer () - / Sluit die voorbereide stelling $ stmt->naby () -}
- Hoe om te leer om in C te programmeer
- Hoe om die Google Chrome uitbreiding instellings te verander
- Hoe om data in SPSS in te voer
- Hoe om `n B12 inspuiting toe te pas
- Hoe om `n inspuiting van Depo Provera toe te pas
- Hoe om te gaan met `n pynlike inspuiting
- Hoe om nie pyn te voel wanneer hulle jou `n inspuiting gee nie
- Hoe om `n proefskrif te skryf (hoërskoolstudente)
- Hoe om `n hipotese te formuleer
- Hoe om polinoom te vermenigvuldig
- Hoe om vas te stel of twee veranderlikes direk eweredig is
- Hoe om `n algebraïese uitdrukking te skryf
- Hoe om `n intradermale inspuiting te plaas
- Hoe om `n inspuiting te ontvang
- Hoe om te weet of jou aar in duie gestort het
- Hoe om simbole, lyne en mate te gebruik om verskillende veranderlikes voor te stel
- Hoe om ballonbetalings in Excel te bereken
- Hoe om `n persoonlike stelsel simbool in Windows te skep
- Hoe om brandstofinjectors te toets
- Hoe om `n inspuiting aan `n kat te gee
- Hoe om `n inspuiting aan `n perd te gee