java et les guillemt - Java - Programmation
Marsh Posté le 14-05-2004 à 12:06:14
oui, tu fais un PreparedStatement et tu "binde" la chaine au statement avant de l'exécuter.
On va surement te parler d'échapper le quotes mais c'est nul, utilise le binding.
Marsh Posté le 14-05-2004 à 12:11:26
Est ce que tu pourrais m'expilquer un peu plus ce que tu entends par là...
Merci
Marsh Posté le 14-05-2004 à 12:16:11
Code :
|
Marsh Posté le 14-05-2004 à 12:23:01
nraynaud a écrit : |
pourquoi c'est nul ?
Marsh Posté le 14-05-2004 à 12:31:12
uriel a écrit : pourquoi c'est nul ? |
1) ça nécessite de recopier la chaine, puis de faire des contaténations inutiles.
2) les bidouilles sur l'échappement, on oublie toujours un truc
3) on va oublier d'échapper un truc spécifique à la base, ou de la mauvaise manière (on double les quotes normalement, mais certaines bases veulent des \, etc.)
Marsh Posté le 14-05-2004 à 12:34:43
en fait l'ordre des motifs, c'est 2-3-1
Marsh Posté le 14-05-2004 à 12:37:12
nraynaud a écrit : en fait l'ordre des motifs, c'est 2-3-1 |
c'est surtout le point 3 qui me titille, sachant que en ce moment on fait un truc pour mysql mais qui sera peut etre ammene a fonctionner sous db2.
Mai le point 2 aurait du etre inventer pour moi (comment perdre son temps sur des trucs comme ca)
Marsh Posté le 14-05-2004 à 12:50:37
gfive a écrit : ""+i |
merwde...Pabon bouton!
Marsh Posté le 14-05-2004 à 12:54:00
ReplyMarsh Posté le 14-05-2004 à 12:56:26
uriel a écrit : |
C'est surtout que ça va se finir par une "SQL injection vulnerability" sur bugtrack. Alors qu'on connait la méthode pour éviter ça à coup sur.
Il faut découper les responsabilités des gens, comme on le fait pour les classes. Les trucs de la base, c'est aux dev du driver de se démerder avec.
Marsh Posté le 14-05-2004 à 12:58:16
nraynaud a écrit :
|
pourquoi pas un setInt plutot que de transformer i en chaine ?
Marsh Posté le 14-05-2004 à 13:13:05
lorill a écrit : pourquoi pas un setInt plutot que de transformer i en chaine ? |
heu passke le code, j'ai été le piquer sur le net à coup de google et je l'ai modifié à l'arrache.
par contre, pourquoi il y avait ça dans le code de départ ???
Marsh Posté le 14-05-2004 à 13:15:13
Pkoi ""+i??
C'est à cause des feignasses qui préfèrent utiliser ça plutôt que de faire String.valueOf(i).
Cai mal!
Marsh Posté le 14-05-2004 à 13:25:00
gfive a écrit : Pkoi ""+i?? |
nan mais surtout que la c'est crétin de le transformer en chaine
Marsh Posté le 14-05-2004 à 13:30:58
lorill a écrit : nan mais surtout que la c'est crétin de le transformer en chaine |
tiens :
http://www.javaworld.com/javaworld [...] power.html
il y a peut-être une explication.
Marsh Posté le 14-05-2004 à 13:44:44
nraynaud a écrit : tiens : |
pas vraiment, non
Marsh Posté le 14-05-2004 à 13:46:38
lorill a écrit : pas vraiment, non |
le produit de coupe, encore une fois ?
Marsh Posté le 14-05-2004 à 13:52:32
nraynaud a écrit : le produit de coupe, encore une fois ? |
sans doute, surtout que page2 dans leur explication de DebuggableStatement, ils ont implémenté setInt()
Marsh Posté le 14-05-2004 à 12:02:06
Salut,
je suis sur un projet et j'aurai besoin de savoir si c'est possible et surtout comment faire pour gérer les guillemets dans un chaîne de caractères.
Je m'explique. J'ai un site web en jsp et une base mysql. Une des pages contient un formulaire avec un des champs (type text) qui doit contenir pas mal de texte. Le problème c'est que dès que l'utilisateur entre le caractère double quote, il est interprété comme la fin de la chaîne de caratère et donc la requete de mise à jour de la bd plante et ca fait chier.
Voilà, j'espère que j'ai été assez clair.
Si quelqu'un voit comment résoudre ce petit problème merci de m'aider.
Izno