iedarbīgas zāles ([info]bez4pieci) rakstīja,
@ 2007-06-08 14:54:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
kods evolucionē!
ja senāk rakstīju:

SELECT obj13_gallery.*
FROM relations, obj13_gallery
WHERE relations.obj1_type_id = 4 AND
      relations.obj1_id = $itemId AND
      relations.obj2_type_id = 13 AND
      relations.obj2_id = obj4_gallery.id


tad tagad rakstu:

SELECT mod_gallery.*
FROM root_relations, mod_gallery
WHERE root_relations.module1 = 'mod_news' AND
	root_relations.item1 = $itemId AND
	root_relations.module2 = 'mod_gallery' AND
	root_relations.item2 = mod_gallery.id


grūti pateikt, vai uz labo pusi, taču citādāk ir :)


(Ierakstīt jaunu komentāru)


[info]src
2007-06-08 16:26 (saite)
1) relations.obj1_id = $itemId un root_relations.item1 = $itemId vienmēr ir slikti

2) root_relations.module1 = 'mod_news' ir labāk par relations.obj1_type_id = 4, bet pēdējā gadījumā tak varēja arī attiecīgajiem idiem konstantes lietot

(Atbildēt uz šo) (Diskusija)


[info]bez4pieci
2007-06-08 22:28 (saite)
kāpē 1) ir slikti?

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]src
2007-06-10 21:37 (saite)
bezdelīgam bij pareiza doma.

vispār foršāk ir aptuveni tā

$sql = 'select x from xy where x = ?';
$db->execute($sql,array($id)); // kur db execute sql vaicājumam jautājumzīmju vietā saliek parametrus no masīva, kurus pie vajadzības automātiski esceipo.

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]bez4pieci
2007-06-10 22:11 (saite)
a ja man ieslēgts magic_gpc un ir funkcija, kas čeko, ja gadījumā magic_gpc ir izslēgts, tad automātiski visus POST & GET datus eskeipo?

nekāda funkcija no injecijām tāpat nepasargās, tās vienmēr jāčeko atsevišķi

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]src
2007-06-10 23:18 (saite)
magic_gpc ir viens no PHP lielākajiem ļaunumiem

(Atbildēt uz šo) (Iepriekšējais)


[info]bez4pieci
2007-06-08 22:29 (saite)
vienīgais, ko varu iedomāites, ka slikti tāpēc, ka nav iznests ārpus stringa

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]bezdeliiga
2007-06-09 18:14 (saite)
tāpē, ka, vismaz dotajā piemērā, nerodas pārliecinošs iespaids, ka tie ir novalidēti dati un nesatur nekādus injectionus.

vismaz man tā liekas :)

(Atbildēt uz šo) (Iepriekšējais)


[info]bezdeliiga
2007-06-09 18:19 (saite)
un vispār, ja kļūstam kaitinoši piekasīgi, tad 'mod_news' labāk aizvietot ar "mod_news" un SQL likt iekš ', jo, kā zināms, single-quoted stringus PHP neparsē un nemeklē tur escape characterus un mainīgos iekšā, tb dara to ātrāk.


attiecīgi:

$sql = 'SELECT mod_gallery.*
FROM root_relations, mod_gallery
WHERE root_relations.module1 = "mod_news" AND
root_relations.item1 = '.intval($itemId).' AND
root_relations.module2 = "mod_gallery" AND
root_relations.item2 = mod_gallery.id';

kaut kā tā jums geeky lietas sestdienas vakarpusē...

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]bez4pieci
2007-06-10 22:08 (saite)
ai, nu, es taču par sql runāju... $itemId jau sākumā ir

$itemId = (int) $itemId

un viss man stāv vienkārtīgajās (ne dubultajās) pēdiņās, un, ja lietoju echo, tad stringus nekonkatenēju, bet gan atdalu ar komatu, jo tas ir vēl ātrāk.

piekasījies vai zin )

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]bezdeliiga
2007-06-11 09:22 (saite)
nu naivi cerēju, jā, bet tomēr... ;)

(Atbildēt uz šo) (Iepriekšējais)


[info]bez4pieci
2007-06-10 22:09 (saite)
starp citu, teicu taču jau par mainīgā iznešanu ārpus stringa.

(Atbildēt uz šo) (Iepriekšējais)


Neesi iežurnalējies. Iežurnalēties?