2009-09-15 17 views
0

Actuellement, je fais un projet concernant l'injection SQL. Je le fais de telle sorte qu'il trouvera l'injection SQL indépendante du script côté serveur .. que ce soit jsp ou asp ou php. Maintenant, le problème majeur est que je dois extraire la requête SQL de la page Web. C'est à ce moment que j'appuie sur le bouton submit, par exemple, la requête du serveur web à la base de données sera envoyée sous la forme d'une instruction sql. Donc, mon problème est de capturer cette déclaration SQLExtrait requête SQL à partir d'une page Web indépendante du langage de script

Des suggestions de comment faire?

Merci à l'avance

Répondre

1

Vous ne pouvez pas capturer un script SQL basé sur le serveur, et un site Web qui génère le SQL en Javascript vous demande simplement à Brea site ktheir.

1

Vous pouvez mettre un proxy entre votre application Web et le rdbms. Certains systèmes (MySql for example) sont livrés avec un tel proxy.

0

Certains SGBDR ont la particularité d'enregistrer des requêtes SQL exécutées (SQL Server a le profileur SQL Server par exemple). Si votre SGBDR n'a pas cette fonctionnalité, vous pouvez intercepter les requêtes SQL avec un proxy dans le réseau (application web ----> votre proxy ----> SGBDR).

Vous devez associer les valeurs d'entrée et les requêtes enregistrées.

Le problème avec la recherche dans les requêtes SQL dans le code est très complexe et je pense impossible. La requête SQL ne doit pas être au format texte ou peut être créée dynamiquement.

Par exemple:

// this will produce SQL query 
from p in db.Products where p.Size > 1000 && p.Count < 5 order by p.Name select p; 

// this will not produce any SQL query 
from c in ColumnsOf(db.Products) where c.Contains("Name") select c.Type; 

// this will produce SQL query 
var tmp = "SELECT "; 
for(int i = 0; i < columns.Length; i++) { 
    if (i > 0) { tmp += ", "; } 
    tmp += columns[i].Name; 
} 
tmp += "FROM " + someTextVariable;