Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [php] Sicurezza, chi mi aiuta ?

    Sono abbastanza demoralizzato ... premetto che sono un principiante

    Ho deciso di rifare il mio sito dopo 7 anni, in questi mesi ho imparato css, xhtml, un po' di web design e infine il php e mysql(o meglio, l'uno per cento delle potenzialità di php), ho trovato diverse difficoltà e bene o male le ho superate, ma lo scoglio della sicurezza si sta rivelando insormontabile.

    Gli script mi funzionano, ma ho paura di aver concesso buchi enormi o fatto errori madornali.

    Ecco il motore del mio sito, il file index.php

    Codice PHP:
    <?php 
    include("funzioni.inc.php");
    include(
    "header.php");
    if(!isset(
    $_GET['idcat'])&&!isset($_GET['idaut']))                         
        
    display_home();
        elseif (isset(
    $_GET['idcat']))
        {
            if(!isset(
    $_GET['idart']))
            {
            
    display_cat();
            }
            else
            {
            
    display_art();
            }
        }
        elseif (isset(
    $_GET['idaut']))
        
    display_aut();
    ?>
    In pratica includo staticamente il file delle funzioni e l'header.
    Poi, a seconda di quali variabili vengono passate nella querystring, con le funzioni display_xxx accedo al database e faccio compilare i div content extra e footer nelle 4 maniere che mi interessano:
    1 home page (con display_home seleziono gli ultimi 5 articoli)
    2 categorie (con display_cat seleziono tutti gli articoli di una categoria di news)
    3 articolo (con display_art seleziono l'articolo interessato)
    4 autore (con display_aut seleziono l'autore dell'articolo)

    Che ne pensate ? Sto toppando qualcosa in maniera clamorosa ?

    Se va bene, come potrei metterlo in sicurezza ?

    Da cosa partire per imparare qualcosa sulla sicurezza ?

    Grazie e scusate la lunghezza.

    Ciao

  2. #2
    In questo caso il problema sicurezza non si pone più di tanto in quanto tale codice decide solo quale pagina visualizzare.
    I problemi di sicurezza si presentano quando non si effettuano determinate verifiche sui controlli utilizzati per i login e, quindi, per l'accesso al sito e/o al relativo DB.
    Ferme restando le falle di sicurezza di PHP che solo il sito di Hosting può gestire (se usi un server tuo ti consiglio di aggiornarlo continuamente), le maggiori problematiche di sicurezza riguardano, appunto, il controllo degli accessi.
    Se, ad esempio, non effettui alcuni controlli NON SOLO nell'input di campi come user-name e password, ma anche e SOPRATTUTTO nel risultato del $_GET saresti facile preda di un malintenzionato.
    Le tecniche di SQL injection sfruttano, per la maggiorparte, questa carenza di controlli.
    Senza addentrarmi troppo nello specifico, ti consiglio di partire da QUI>>>http://it.wikipedia.org/wiki/SQL_injection

  3. #3
    Grazie, in effetti il mio sito non prevede accessi con login aperti agli utenti.

    L'unica cosa è che le funzioni Display_xxx che utilizzo, accedono ad un database mysql tramite le variabili raccolte con $_GET.

    Sono al sicuro anche lì ?

    Ciao

  4. #4
    Per accedere al db è necessaria un'autenticazione?!?
    Nel caso non lo fosse, mandando in errore il $_GET si potrebbe avere come messaggio di risposta l'errore della QUERY che rivelerebbe la posizione del DB...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.