2012-03-26 11 views
2

私はAndroidプログラミングの新機能ですから、これは簡単な質問かもしれませんが、まだ答えは見つかりませんでした。 基本的には、xmlを必要とするC#webserviceを呼び出しています。私は、フィルタリングされていないユーザ入力を送ることを心配しています。そこ私はこれをしなければならないかなりの数の場所がありますが、ログインが良い例です。WebサービスコールのAndroidユーザー入力の墨塗り

String userName = "MyUserName"; 
String password= "MyPassword"; 
String url = "http://mywebserviceurl.com/auth; 
String xml = "<AuthenticateModel xmlns=\"http://schemas.datacontract.org/2004/07/Mycompany.Auth.Lib\">\n" + 
      " <EmailAddress>" + userName + "</EmailAddress>\n" + 
      " <EncodedPassword>" + password + "</EncodedPassword>\n" + 
      "</AuthenticateModel>"; 

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost post = new HttpPost(url); 
StringEntity str = new StringEntity(xml); 
str.setContentType("application/xml; charset=utf-8"); 
str.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/xml; charset=utf-8")); 
post.setEntity(str); 
HttpResponse httpResponse = httpclient.execute(post); 

ここで私は、現在持っているもののラフバージョンは(SO他の例から一緒に石畳)です

素晴らしいです。ユーザー情報はサーバー側で処理されますが、完全にフィルタリングされていない状態で送信することは悪い考えです。フィードバックに感謝します。

さらに、アプリケーションの設定にユーザ名を保存しているので、私が心配しているウェブサービスだけではありません。 ありがとう!

答えて

2

このコールはXML Injectionに脆弱ですが、これは攻撃者にとっても役に立たないと思われます。

攻撃者はこのC#webserviceに直接アクセスします。あなたのクライアントが構築しているリクエストは誰も気にしません。サービスがSQLインジェクション、コマンドインジェクション、ディレクトリトラバーサルなどの一般的な脆弱性を自己のフォームで保護していることを確認する必要があります。

+0

ありがとう@Rook。私たちはウェブサービスをカバーしています。他に誰かが追加するものがあれば、してください。 –

+1

@Adrian Carrユーザーがパスワードに '<'をつけていると、潜在的な落とし穴の1つになります。これはセキュリティの問題ではなく、単にログインすることはできません。 – rook