Faire des requêtes sql sur une base par l'intermédiaire d'une page asp

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 229 fois - Téléchargée 36 fois

Contenu du snippet

Attention : cette page est un trou de sécurité à elle toute seule et ne doit être laissée sur un serveur que le temps du développement.

Son but est de vous permettre de faire facilement des requêtes sur votre base depuis votre browser pour récupérer les données (voire même la structure) de votre base.

Source / Exemple :


<%@ Language=VBScript %>
<%option explicit %>
<%response.buffer=true%>
<!--
Auteur : Emmanuel BRUNO-GAZIGNAIRE
Email : ___nospam___bmanu@francenet.fr
Web : http://gdf.zalem.net
-->

<!-- #include virtual="/adovbs.inc" -->
<!--
Là il faut trouver le fichier adovbs.inc, il doit être qqpart sur votre machine
Sinon trouve le sur le net
-->

<HTML>
<HEAD>
<title>SQL</title>
</HEAD>
<BODY>
<%
if request("sql")="" then
%>
	<form name="frm" action="<%=Request.ServerVariables("URL")%>" method="get">
	<textarea name="sql" cols="80" rows="10"></textarea>
	<br>
	dsn : <input type="text" name="dsn" value="" size=50>
	user : <input type="text" name="user" value="">
	password : <input type="text" name="password" value="">
	<a href="javascript:void(self.document.frm.submit());">Envoyer</a>
	</form>
<%
else
	dim cn,rs,sql,i, tonDSN, tonLogin, tonPassword

'tonDsn = dsn a utiliser par defaut
'tonlogin=login par defaut
'tonpassword=password par defaut

	set cn = server.CreateObject("adoDb.connection")
	set rs = server.CreateObject("adoDb.recordset")

	if request("dsn") <>"" then
		if request("user")<>"" then
			cn.Open request("dsn") , request("user") , request("password")
		else
			cn.Open request("dsn")
		end if
	else
		cn.Open tonDSN, tonLogin, tonPassword
	end if
	sql=request("sql")

	rs.Open sql, cn
	Response.write "<table border=2 cellspacing=0 cellpadding=4 bgcolor=""#eeeeee"">" & vbcrlf
	Response.write "<tr>" & vbcrlf
	for i = 0 to rs.Fields.Count - 1
		with Response
			.Write "<td><b>" & i & "</b></td>"
		end with
	next
	Response.write "<tr>" & vbcrlf
	for i = 0 to rs.Fields.Count - 1
		with Response
			.Write "<td><b>" & rs.Fields(i).Name & "</b></td>"
		end with
	next
	Response.write "</tr>" & vbcrlf

	do while not rs.eof
		Response.write "<tr>" & vbcrlf
		for i = 0 to rs.Fields.Count - 1
			with Response
				if not isnull(rs.Fields(i).value ) then
					.Write "<td>" & rs.Fields(i).value & "</td>"
				else
					.Write "<td>NULL</td>"
				end if
			end with
		next	
		Response.write "<tr>" & vbcrlf
		rs.movenext
	loop
	rs.Close
	cn.Close
	set rs = nothing
	set cn = nothing
end if
%>
</BODY>
</HTML>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
6
Date d'inscription
vendredi 3 janvier 2003
Statut
Membre
Dernière intervention
6 février 2009

Tout ce code aurait pus être évité simplement en utilisant quelque chose du genre :

response.write "\"
response.write \"\"
response.write \"----
\"
for i = 0 to rs.fields.count - 1
response.write \"" & rs.fields(i).name & " |\"
next

response.write \"----
"
if rs.recordcount then response.write replace(rs.GetString(2,,", ",", ----
","null"),chr(13),"
")
response.write ", \"
response.write "
"
Messages postés
4
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
14 mars 2004

Dans le pire des cas vous pouvez aussi harcoder un code "Top 10" dans votre requete sql et vous limitez des mot tel que le nom de la table password ou les "delete" et "update".

Au plaisir de vous éclairer!!!
Messages postés
4
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
14 mars 2004

Dans le pire des cas vous pouvez aussi harcoder un code "Top 10" dans votre requete sql et vous limitez des mot tel que le nom de la table password ou les "delete" et "update".

Au plaisir de vous éclairer!!!
Messages postés
70
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
16 février 2002

ben pour la sécurité, il suffit de
ne pas mettre en dur les dsn, logn, pass
changer le type du champ mot de passe de text à password
changer la méthode du form en post
ajouter éventuellement une authentification pour acceder a la page

Après c'est pas sécurisé car le pass transite en clair sur le réseau, mais a ce niveau là ca craint pas plus que d'envoyer un code en ASP qui contient des mots de passe par FTP, ou que d'envoyer un mail.

Si ton site c'est la banque de france d'accord oublie, sinon faut pas pousser non plus...
Messages postés
196
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
25 juillet 2006

Merci .. Mais il faut que je trouve comment faire sans passer par ça .. parce que la ... c'est sur que pour la sécurité .... humm humm ...

Bref ... Merci quand même ... ça peut toujours dépanné ...

@+

bigbang
bigbang00@caramail.com

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.