﻿
{"id":197,"date":"2012-03-15T22:24:26","date_gmt":"2012-03-15T22:24:26","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=197"},"modified":"2012-04-25T07:24:13","modified_gmt":"2012-04-25T07:24:13","slug":"ado-net-connected-mimari-sql-injection","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/ado-net-connected-mimari-sql-injection\/","title":{"rendered":"ADO.NET Connected Mimari &#8211; SQL Injection"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Bu yaz\u0131mda SQL Injection&#8217;dan bahsedece\u011fim.SQL Injection \u00f6zellikle web uygulamalar\u0131ndaki en ciddi g\u00fcvenlik a\u00e7\u0131klar\u0131ndan biridir.E\u011fer SQL sorgular\u0131m\u0131z i\u00e7ine programdan de\u011fer al\u0131rken o de\u011feri + operat\u00f6r\u00fc ile ekliyorsak sorgumuza d\u0131\u015fardan her t\u00fcrl\u00fc m\u00fcdahale yap\u0131lmas\u0131na imkan vermi\u015f oluyoruz.<br \/>\n<!--more--><br \/>\nSQL Server da sorgular aras\u0131na ; koyarak tek seferde birden fazla sorgu \u00e7al\u0131\u015ft\u0131rabiliriz.\u00d6rne\u011fin a\u015fa\u011f\u0131daki kod blo\u011funu inceleyiniz.TextBox&#8217;a girilen de\u011fere g\u00f6re bir select sorgusu d\u00f6nmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nSqlConnection baglanti = new SqlConnection(&quot;Server=GEN\u00c7AY-GEN\u00c7AY;database=Northwind;trusted_connection=true;&quot;);\r\n            baglanti.Open();\r\n            SqlCommand cmd = new SqlCommand(&quot;Select Adi,Soyadi from Personeller where PersonelId = '&quot; + textBox1.Text + &quot;'&quot;, baglanti);\r\n            SqlDataReader dt = cmd.ExecuteReader();\r\n            while (dt.Read())\r\n            {\r\n                MessageBox.Show(dt&#x5B;&quot;Adi&quot;].ToString() + &quot; &quot; + dt&#x5B;&quot;Soyadi&quot;].ToString());\r\n            }\r\n            baglanti.Close();\r\n            baglanti.Dispose();\r\n<\/pre>\n<p>Yukardaki yap\u0131da sorguyu incelerseniz e\u011fer + operat\u00f6r\u00fc kullanarak TextBox&#8217;a girilen de\u011feri vermeteyiz.Burada \u015f\u00f6yle bir uyan\u0131kl\u0131k yapabiliriz.TextBox&#8217;uma &#8220;7;delete from Personeller&#8221; yazarsam e\u011fer,arka planda \u00e7al\u0131\u015ft\u0131r\u0131lacak sorgu \u015fu olacakt\u0131r;<br \/>\n&#8220;Select Adi,Soyadi from Personeller where PersonelId=&#8217;7&#8242;;delete from Personeller&#8221; yani \u00f6nce \u015farta uygun tabloyu se\u00e7ecek,sonrada Personeller tablosundaki b\u00fct\u00fcn kay\u0131tlar\u0131 silecek.<br \/>\nBu b\u00fcy\u00fck bir g\u00fcvenlik a\u00e7\u0131\u011f\u0131d\u0131r.Bunun \u00e7aresi ise, sorgular\u0131m\u0131za d\u0131\u015far\u0131dan de\u011fer al\u0131rken kesinlikle + operat\u00f6r\u00fc ile almayaca\u011f\u0131z.De\u011fer al\u0131rken parametre olarak alaca\u011f\u0131z ve sorguya o parametreyi g\u00f6nderece\u011fiz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nSqlConnection baglanti = new SqlConnection(&quot;Server=GEN\u00c7AY-GEN\u00c7AY;database=Northwind;trusted_connection=true;&quot;);\r\n            baglanti.Open();\r\n            SqlCommand cmd = new SqlCommand(&quot;Select Adi,Soyadi from Personeller where PersonelId = @id&quot;, baglanti);\r\n            cmd.Parameters.Add(&quot;@id&quot;, textBox1.Text);\r\n            SqlDataReader dt = cmd.ExecuteReader();\r\n            while (dt.Read())\r\n            {\r\n                MessageBox.Show(dt&#x5B;&quot;Adi&quot;].ToString() + &quot; &quot; + dt&#x5B;&quot;Soyadi&quot;].ToString());\r\n            }\r\n            baglanti.Close();\r\n            baglanti.Dispose();\r\n<\/pre>\n<p>Yukarda g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi @id parametresi tan\u0131mlanm\u0131\u015ft\u0131r.E\u011fer SqlCommand nesnesi i\u00e7inde parametre varsa Execute etmeden \u00f6nce o parametreyi SqlCommand nesnesine tan\u0131tmam\u0131z laz\u0131m.Bunuda Parameters koleksiyon yap\u0131s\u0131yla yap\u0131yoruz.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131mda SQL Injection&#8217;dan bahsedece\u011fim.SQL Injection \u00f6zellikle web uygulamalar\u0131ndaki en ciddi g\u00fcvenlik a\u00e7\u0131klar\u0131ndan biridir.E\u011fer SQL sorgular\u0131m\u0131z i\u00e7ine programdan de\u011fer al\u0131rken o de\u011feri + operat\u00f6r\u00fc ile ekliyorsak sorgumuza d\u0131\u015fardan her t\u00fcrl\u00fc m\u00fcdahale yap\u0131lmas\u0131na imkan vermi\u015f&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,22],"tags":[129,131,135],"class_list":["post-197","post","type-post","status-publish","format-standard","hentry","category-c-sharp-c","category-veritabani","tag-ado-net","tag-connected","tag-sql-injection"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=197"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/197\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}