Ik heb veel berichten over berichten (en stapeloverloop) gelezen over het ontsnappen van personages en het ontsmetten van gebruikersinvoer, maar ik zou het allemaal willen koppelen en het een beetje specifieker maken voor het Android-platform. Dit is mijn omstandigheid:
Ik heb een Android-app die communiceert met een webservice via SOAP XML-berichten. Hier is een voorbeeld XML-bericht dat kan worden verzonden (ik laat de SOAP-envelop er omheen):
user entered text
user entered text
Zoals je ziet, zijn er 2 plaatsen waar een gebruiker tekst kan invoeren in een formulier dat vervolgens in dit bericht wordt ingevoegd om naar de webservice te worden verzonden. Ik moet:
A) zorg ervoor dat het geldige xml en
is
B) zorg ervoor dat het geen schadelijke SQL-inhoud bevat.
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)
Is er een manier om te controleren op schadelijke SQL (of een andere code-injectie) of moet dat worden afgehandeld op de server?
Als een kanttekening: ik zou bijna de voorkeur geven aan het feit dat de gebruiker alleen A-z, 0-9 en standaard interpunctie kon invoeren (om rare unicode-karakters te vermijden die soms niet eens kunnen worden gezien of geïnterpreteerd). Is er een goede manier om gebruikersinvoer te beperken tot een subset tekens?
Ik weet dat dit een paar vragen zijn die in één zijn ingebouwd, dus als je er maar een deel van kent, geef dan sowieso een antwoord en ik zal het graag overnemen of accepteren. Alvast bedankt voor alle hulp! (StackOverflow is waar ik kom wanneer ik veel te veel forumdiscussies heb opgebruikt en mezelf helemaal in de war heb gebracht over wat toepasselijk is in mijn omstandigheden)