Teknik coding untuk perlindungan terhadap SQL Injection (Part 1)

Diskusi Umum Teknik coding untuk perlindungan terhadap SQL Injection (Part 1)

  • 16 April 2012 9:19
    Moderator
     
     

    Selama beberapa minggu terakhir ada laporan dan komentar tentang serangan SQL injection yang diluncurkan terhadap ASP classic dan situs ASP.NET (lihat rincian pada http://blogs.iis.net/bills/archive/2008/04/26/sql-injection-attacks-on-iis-web-servers.aspx ).

    Termasuk dalam pos ini adalah sampel VB.NET dan C# yang dapat digunakan untuk menyaring nilai-nilai query-string, form dan cookie yang masuk untuk melihat nilai potensial SQL injection. Namun karena data input yang valid bervariasi dari satu situs ke situs web lainnya, tidak mungkin untuk menulis satu mekanisme yang cocok untuk semua metode penyaringan. Anda dapat memodifikasi contoh kode yang terdapat dalam posting ini untuk disesuaikan dengan urutan karakter yang sesuai untuk website anda.

    Juga sebagai pengingat, jika sebuah situs web didominasi oleh SQL dinamis (sebagai perbandingan lawan dari SQL parameter atau parameterized stored procedures) ini adalah praktek terbaik untuk menghindari semua tanda kutip tunggal yang terkandung dalam un-trusted web input. Karena tidak mungkin untuk membuat pengganti ini dengan menggunakan metode HttpModule / BeginRequest seperti yang ditunjukkan di bawah, sebaliknya anda malah dapat mencari kode website dan menghindar dari semua tempat di mana Sql dinamis dibangun.

    //C# snippet  

    private string SafeSqlLiteral(string inputSQL) 

     

    {  

      return inputSQL.Replace("'", 

    "''");  

    }  

      

    'VB.NET snippet 

     

     

    Private Function SafeSqlLiteral(ByVal inputSQL 

    As String) As String  

        Return inputSQL.Replace("'", "''")  

    End Function

    Berlanjut ke MS Knowledge Base: Teknik coding untuk perlindungan terhadap SQL Injection (Part 2)


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.