プロが教える店舗&オフィスのセキュリティ対策術

vs2010でWCFにチャレンジしていますが、vs2005でのASP.NETとは、全然違いなかなか理解することでができません。

iphoneから値を受け取って、WEB上のMYSQLに保存したいだけなのですが、
通常のasp.net webフォームでgetメッソドを使い下記のようにすることで、
webサービスのような処理ができることが分かったのですが、
このような処理の場合は、一般的にWEBサービスとは呼ばないのでしょうか?
また、このような処理で実装した場合、wcfサービスで構築した場合に比べ
どのようなデメリットがでるのでしょうか?

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

On Error GoTo Err_load

Dim id As String = Page.Request.QueryString.Get("id")
Dim name As String = Page.Request.QueryString.Get("name")

If Pubmodule.FunDBConnect_Express(con) = False Then Exit Sub

strSql = "INSERT into gps_location values(" & id & ",'" & name & "','" & Now() & "')"

'MySQLCommand作成
cmd = New MySqlCommand(strSql, con)

cmd.ExecuteNonQuery()
cmd.Dispose()

Ext_load:
Exit Sub

Err_load:
GoTo Ext_load

End Sub

A 回答 (2件)

> このような処理の場合は、一般的にWEBサービスとは呼ばないのでしょうか?



アップしてあるコードは Web サービスとはぜんぜん違います。ASP.NET で Web サービスを実装する方法は「asp.net webサービス」をキーワードにググルと山ほど出てきますので、詳しくはそれを見てください。

その前に、SQL インジェクションをしてくださいと言わんばかりの、セキュリティ上の問題を何とかした方がいいと思いますよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2013/06/07 05:47

「Webサービス」という言葉は、世間的には「Webを使って利用者に何らかの機能を提供する」という意味で、そういう位置づけではどんな処理も「Webサービス」と言えなくはないです。


ただ、ASP.NETの世界で「Webサービス」とは、Visual Studio 2002時代からMicrosoftが推進した「XML Web Service」を指しますが、こちらは、SOAPフォーマットに則ったXML通信規格です。

ご提示されているhttpGET通信は大昔から使われた手法で、以下の点で「Webサービス」に劣ります。
・送受信できるのが単純な文字列のみ。ユーザ定義型のオブジェクトは使用できないため、自力で文字列合成や分解を行う必要がある。
・暗号化や符号化の機能がなく、セキュリティ的にも甘い(クエリ内容が平文でURL履歴に残り、一目瞭然)。

なので、自己責任で使用する分には別に構わないのですが、POSTにするとか、Ajax通信にするとか、キーを暗号化するとかして、セキュリティを高められたほうがよいと思います。
    • good
    • 0
この回答へのお礼

よく分かる説明ありがとうございます。

お礼日時:2013/06/07 05:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!