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