Python MySQLdb - Програмиране около SQL код за инжектиране

Първо, съвсем нов съм в Stack Overflow (първият публикуван въпрос) и форумите като цяло. В допълнение към този провал, аз също съм нов в разработката и базите данни, различни от нивото на системна администрация.

Виждам няколко въпроса относно използването на променливи в Python с модула MySQLdb в stackoverflow. Много от тях споменават код за SQL инжектиране като този. Отговорът със 70+ гласа за ви дава пример, при който % изглежда е решаващият знак за това дали вашият код е податлив на SQL инжектиране или не. Въпросите ми са:

  1. Правилно ли разбирам, че "" % (VAR) вместо "", (VAR) е това, което прави разликата?

  2. Ако случаят е такъв, тогава тази публикация също ли е пример или има нещо различно с използване на % за обозначаване на таблица срещу клауза?

Заслужава да се отбележи, че се опитах да науча повече за SQL Injection. Не съм сигурен дали съм твърде гъст или материалът е, но просто не следя. В тази статия от cisco, която се опитах да следвам, намирам че не се споменава процент, но вместо това изглежда, че използват?. Така че, ако някой може да ме насочи към някаква "неспецифична" документация, ще съм благодарен!


person NoPathInParticular    schedule 03.08.2013    source източник
comment
SQL инжектирането става възможно веднага щом започнете да интегрирате въведените от потребителя данни във вашите заявки. Това е една от най-известните илюстрации. Този референтен въпрос, въпреки че първоначално се прилага за PHP, също предоставя тонове ценна информация за това как да предотвратите това, независимо от езика .   -  person RandomSeed    schedule 03.08.2013
comment
Вижте и този.   -  person RandomSeed    schedule 03.08.2013
comment
@RandomSeed благодаря за бързия отговор. Ще прегледам връзките ви, но смятам, че това беше липсващата част. С цялото четене, което направих, не успях да осъзная, че това е въведено от потребителя. По принцип се притеснявах за грешното нещо, тъй като моето не се основава на въведени от потребителя данни. Но сега, когато знам повече за това, много се интересувам.   -  person NoPathInParticular    schedule 03.08.2013
comment
Измина достатъчно време, за да добавите своя собствен отговор като действителен отговор. Моля, направете го, като използвате хронологията на редакциите на вашия въпрос, ако е необходимо, за да извлечете текста.   -  person Air    schedule 11.04.2015


Отговори (1)


RandomSeed публикува правилния отговор на моя въпрос, така че ще публикувам отново:

SQL инжектирането става възможно веднага щом започнете да интегрирате въведените от потребителя данни във вашите заявки. Това е една от най-известните илюстрации . Този справочен въпрос, въпреки че първоначално се прилага към PHP, предоставят и тонове ценна информация за това как да предотвратите това, независимо от езика

person NoPathInParticular    schedule 29.01.2016
comment
Моля, включете връзката в отговора си. - person Rekamanon; 23.10.2019