Қауіпсіз пайдаланушының кірісі

Көптеген форумдарды оқып шығып, пайдаланушылардың кіруін санитарлық тазалау туралы хабарламаларды оқыдым, бірақ мен оларды бір-бірімен байланыстырып, оны Android платформасына біршама үлес қосқым келеді. Міне, менің жағдайым:

SOAP xml хабарламалары арқылы веб-қызметімен байланысатын Android қолданбасы бар. Міне, жіберілуі мүмкін үлгі xml хабарламасы (Мен айналасындағы SOAP хатқалтасынан шығамын):


    user entered text
    
user entered text

Көріп отырғаныңыздай, пайдаланушы 2-орынды мәтінге енгізе алады, ол содан кейін веб-қызметке жіберілетін осы хабарламаға енгізіледі. Маған керек:
A) жарамды xml және Google екеніне көз жеткізіңіз B) зиянды SQL мазмұнының жоқтығына көз жеткізіңіз.

Are there any pre-included utilities in the Android API to escape invalid xml chars (such as &) that the user may have entered? (So that I can simply say "escapeXML(xmlstring);" or something like that)

Зиянды SQL (немесе басқа кодты инъекциялау) немесе сервер жағында өңдеу керек пе?

Бүйірлік ескерту ретінде: Пайдаланушы тек A-z, 0-9 және негізгі тыныс белгілеріне кіре алатындығын қаладым (кейде тіпті көрінбейтін немесе интерпретацияланбайтын бірегей Unicode таңбаларынан аулақ болу үшін). Пайдаланушы енгізілімін таңбалар жиынына шектеудің жақсы жолы бар ма?

Мен білемін, бұл бір-біріне салынған жұптық сұрақтар, сондықтан егер сіз оның бір бөлігін ғана білсеңіз, онда кез-келген жауапты сұраңыз және мен оны көтеруге қуаныштымын. Барлық көмек үшін алдын-ала рақмет! (StackOverflow - бұл менің көптеген жағдайларда форумдар мен көптеген тақырыптарды жұмсаған кезде келемін)

1
Менің ойымша, сіз оны регрессиямен шектей аласыз, бірақ мен ондай болмас едім. Алдымен бұл шектеу оны инъекциядан қорғай алмайды (бәрі сізге қажет негізгі фактор болып табылады). Екіншіден, сіздің кез-келген қолданушыларыңыз сыртқы таңбалар жиынтығын пайдаланса (немесе тіпті дұрыс сыртқы несие-сөздерді енгізуге тырысса), олардың кірісі бас тартылса, сәл майланады. Әдетте орнына пішімделген xml - сақтау объектілерін (класс даналарын) сақтамауыңыз керек. Параметрленген сұраулар SQL инжекциясына қатысты болуы керек - мұнда скрипт-сценарийлерге назар аудару қажет.
қосылды автор Clockwork-Muse, көзі
Клиентіңізді білмей-ақ, белгілі бір нәрсені айта алмаймын, бірақ сіз түсінгеннен гөрі шетелдік сөздерді жиі қолдануға болады (тіпті егер сіз оларды дұрыс емлесе алмасаңыз да). Клиент АҚШ-та ғана жұмыс істесе де (домен/орынға байланысты). Әдетте SOAP-пен айналысқан кезде сіз хабарламаны серияландыратын/реттейтін кейбір негіз/кітапхананы пайдаланасыз - сіздің кодыңыз xml хабарынан келгенін білуі міндетті емес (және, бәлкім, болмауы керек). Java үшін бірнеше, Android-ға тән нұсқа туралы білмеймін.
қосылды автор Clockwork-Muse, көзі
Шетелдік сөздердің мәселесін шешпейтіндігімізді білемін, себебі бұл АҚШ-та жұмыс істейтін нақты клиент үшін жазылған пайдаланушыға арналған бағдарлама. Сондай-ақ, мәтінді, сандарды және пунктуацияны шектеу SQL инъекциясына кедергі келтіреді деп ойламадым, бірақ мәтінді оқырманға ыңғайлы етіп ұстап қалатын еді (өйткені ақыл бақылауды «оқу» сияқты білмейді) )
қосылды автор D.R., көзі

1 жауаптар

SQL Injection арқылы жұмыс істеудің ең жақсы жолы параметрленген сұрауларды пайдаланады. Бұл сервер жағында орындалады. Барлық қалған мәселе қайталама, қажет емес немесе мәселенің бетін әрең сызады.

Оларды оқып шығу керек:

Джефф Атвудтың блогында, ол былай дейді:

Параметрлік емес SQL - деректер базасын бағдарламалаудың GoTo операторы.

3
қосылды
Өзіме ұнамды GoTo hater ретінде, мен оны шынымен бағалай аламын және сервер жағынан не істей алатынымызды қарастырамыз (веб-қызметтер IBM Maximo активтерді басқару жүйесіне қосылған, сондықтан мен шектеулі болуы мүмкін немесе ол біз үшін жасай алады)
қосылды автор D.R., көзі