Comment écrire en toute sécurité les données JSON de fichier à l'aide de PHP

J'ai de formulaire HTML pour l'édition d'images. Toutes les données sont stockées en JSON. Quand je change actuelle de l'image, je veux enregistrer les modifications, par le biais de PHP script dans un fichier texte. Si je retourne à l'image précédente, cette configuration sera envoyer à nouveau à partir de ce fichier à la forme.

Ma question est:

Comment écrire/lire ce genre de données en toute sécurité. Où et comment vérifier efficacement les données pour éviter certains JS/PHP code injections?

J'ai joint la notion de code ci-dessous:

JavaScript (à l'aide de jQuery):

//Writing
$.ajax({
    global: false,
    type: "POST",
    cache: false,
    dataType: "json",
    data: ({
        action: 'write',
        config: JavaScriptJSON_Obj
    }),
    url: 'read-write.php'
});

//Reading
$.ajax({
    global: false,
    type: "POST",
    cache: false,
    dataType: "json",
    data: ({
        action: 'read'
    }),
    url: 'read-write.php',
    success: function(data){
        JavaScriptJSON_Obj = data;
    }
});

En PHP par exemple (read-write.php):

switch ($_REQUEST['action']) {
    case 'write':
        file_put_contents('config.txt', $_REQUEST['config']);
        break;
    case 'read':
        $s = file_get_contents('config.txt');
        echo json_encode($s);
        break;
}
Dépend de ce qui est fait avec le JavascriptJSON_Obj je dirais. Elle pourrait ouvrir la porte à un potentiel de fichiers à distance.
Il suffit de la sauvegarder en tant que données textuelles et puis la charger que les données textuelles. Il n'y a rien de dangereux. La seule chose que vous devriez prendre en considération - les droits d'accès. Vous devez les stocker cette information dans un répertoire qui n'est pas directement accessible via un navigateur (c'est pourquoi vous avez read-write.php pour lecture config.txt). Vous pouvez également envisager de stocker ces données dans la DB.

OriginalL'auteur Max Barnas | 2011-05-31