Visualizzazione dei risultati da 1 a 10 su 29

Discussione: Creare array da query

Visualizzazione discussione

  1. #19
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    192
    Cross-site scripting (XSS): https://en.wikipedia.org/wiki/Cross-site_scripting
    Self cross-site scripting (Self-XSS): https://en.wikipedia.org/wiki/Self-XSS
    Mentre devi vanificare o rendere nullo SQL Inejction (poiché agisce per l'istruzione SQL, ergo "il tuo Database"): https://en.wikipedia.org/wiki/SQL_injection
    Se la codifica input e output è conosciuta ti è utile i Preparated Statement (giustamente se la tua applicazione usa Mysqli di php, qui (in sostanza devi assolutamente essere sicuro che il cliente e il database e i Preparated Statement parlano la stessa codifica, altrimenti non funziona ) https://www.php.net/manual/en/mysqli.set-charset.php e potrebbe variare con la versione in uso del RDBMS Mysql a seconda le specifiche del manuale online Mysql (se le tabelle hanno diverso charset del database o una Collacation o Collate diversa o altro se provi il vecchio php).
    Comunque sia una sequenza numerica inviata da una variabile esterna ($_GET o $_POST, $_REQUEST o anche il $_COOKIE per brevità etc. ) è una stringa che invia l'agente utente e la trovi in php come stringa
    Codice PHP:
    //se l'agente utente
    //$_GET['id'] // con valore 1
    if(isset($_GET['id']) && is_string($_GET['id']) && '' !== $_GET['id']) {
    $variabile_dal_programmatore_del_mio_programma urlencode($_GET['id']) === '0' (: '' === trim(urlencode($_GET['id']), '0123456789') ? $_GET['id'] : NULL);
    //supponendo che il tuo sistema operativo usa la corretta rappresentazione del carattere 0 o 1 o 2 o 3 o 4 o 5 o 6 o 7 o 8 o 9 o una sequenza tra di essi (le funzioni php native poiché non leggiamo direttamente il codice potrebbe differire dal comportamento utente voluto e dal codice applicato). Se nel sottoinsieme US-ASCII sicuramente funziona si
    }
    if(isset(
    $variabile_del_programmatore_del_mio_programma) && NULL !== $variabile_del_programmatore_del_mio_programma) {
    //Inserire connessione al database con i dati corretti
    $mysqli = new mysqli("example.com""user""password""database");
    $sql 'SELECT nome_campo FROM nome_tabella WHERE id = ' $variabile_del_programmatore_del_mio_programma;
    var_dump($sql); //Nota l'assenza di apici singoli ergo sintassi "SQL", l'output della sintassi stringa php da non confondere
    //Myslq se il campo id è memorizzato nel type int senza apici singoli lo vede che è già intero, storicamente tra apici singoli indica stringa in Mysql modificata successivamente con l'eccezione se è un valore intero stringa lo interpreta come type int.
    $mysqli->prepare($sql);
    $stmt->execute();
    $result $stmt->get_result();
    $row $result->fetch_assoc();
    var_dump($row['id']); // type int // è spegiato al link precedente per Preparated Statement

    Come suggerito da Shores "lista di province" significa lista bianca (poiché tu crei la stringa si suppone lo fai per la sintassi corretta per l'istruzione SQL). Lista bianca in questo caso significa se è una stringa dello stesso valore applico il valore della mia lista bianca invece di una probabile variabile esterna.
    In realtà non sono funzioni native ma bensì funzioni dall'area utente (cioè non direttamente fornite da php). HTMLPurifier etc.
    Ultima modifica di darbula; 24-01-2022 a 13:04

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.