<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>Rıza Sırman &#187; Validasyon</title> <atom:link href="http://www.rizasirman.com/web-tasarimi/asp-net/validasyon/feed/" rel="self" type="application/rss+xml" /><link>http://www.rizasirman.com</link> <description>Dijital Pazarlama ve İletişim Uzmanı</description> <lastBuildDate>Thu, 10 May 2012 08:00:11 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>Sunucu Taraflı E-posta Adresi Validasyonu</title><link>http://www.rizasirman.com/web_tasarim/asp-net/sunucu-tarafli-e-posta-adresi-validasyonu/</link> <comments>http://www.rizasirman.com/web_tasarim/asp-net/sunucu-tarafli-e-posta-adresi-validasyonu/#comments</comments> <pubDate>Sun, 07 Nov 2010 16:37:55 +0000</pubDate> <dc:creator>Rıza Sırman</dc:creator> <category><![CDATA[ASP.NET]]></category> <category><![CDATA[Validasyon]]></category> <category><![CDATA[e-bülten]]></category> <category><![CDATA[e-mail]]></category> <category><![CDATA[e-posta]]></category> <category><![CDATA[mail]]></category> <category><![CDATA[mail-list]]></category> <category><![CDATA[newsletter]]></category> <category><![CDATA[regex]]></category> <category><![CDATA[server-side regular expression]]></category> <category><![CDATA[validasyon]]></category> <category><![CDATA[validation]]></category><guid isPermaLink="false">http://www.rizasirman.com/?p=428</guid> <description><![CDATA[Bir e-bülten üyeliği yaptığınızı düşünelim. Kullancının adını soyadını ve email adresini bırakarak güncel olarak müşterinizden haberdar olmak istediği bir sistem kuracaksınız. Elbetteki asp.net&#8217;in validator kontrollerini kullanacaksınız. Ancak en basit yoldan alacağınız saldırı şu olacaktır: kullanıcı Mozilla Firefox ile sitenize bağlanacak ve javasciptlerini etkisizleştirecektir. Böylece e-posta için kullandığınız textbox&#8217;a istediği kodu yazıp veritabanınıza gönderme imkanına sahip&#8230;]]></description> <content:encoded><![CDATA[<p><a href="http://www.rizasirman.com/wp-content/uploads/2010/11/validasyon.gif"><img src="http://www.rizasirman.com/wp-content/uploads/2010/11/validasyon-150x150.gif" alt="Validasyon" title="Validasyon" width="150" height="150" class="alignright size-thumbnail wp-image-467" /></a>Bir e-bülten üyeliği yaptığınızı düşünelim. Kullancının adını soyadını ve email adresini bırakarak güncel olarak müşterinizden haberdar olmak istediği bir sistem kuracaksınız. Elbetteki asp.net&#8217;in validator kontrollerini kullanacaksınız. Ancak en basit yoldan alacağınız saldırı şu olacaktır: kullanıcı Mozilla Firefox ile sitenize bağlanacak ve javasciptlerini etkisizleştirecektir. Böylece e-posta için kullandığınız textbox&#8217;a istediği kodu yazıp veritabanınıza gönderme imkanına sahip olacaktır. Bu yüzden bu alanlardan gelecek verileri server-side yani sunucu tarafında da kontrol etmeniz gerekmektedir.</p><p>Page.IsValid kontrolünü yine her ihtiyacımıza karşılık kullanıyoruz. E-mail regular expression validator&#8217;ın ürettiği regex&#8217;in aynısını bir de sunucu tarafında kontrol ettiriyoruz ancak bu validasyon türkçe karakter ile girilen e-mail adreslerinde olumsuz sonuç döndürüyor. Ben buna ek olarak TurkishOk isminde bir değişken kullanarak gerekli kontrolleri kullanıcıyorum. Aşağıda yazdığım kodu sunucu tarafındaki kodlarınıza eklediğinizde sağlıklı bir e-bülten listesine sahip olabilirsiniz.</p><pre class="brush: cpp; title: ; notranslate">
if (Page.IsValid)
        {
            Regex regEmail = new Regex(@&quot;\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*&quot;);
            Match matchEmail = regEmail.Match(NewsletterEmailTxt.Text);
            bool TurkishOk = (!(NewsletterEmailTxt.Text.Contains('İ') || NewsletterEmailTxt.Text.Contains('ı') || NewsletterEmailTxt.Text.Contains('Ü') || NewsletterEmailTxt.Text.Contains('ü') || NewsletterEmailTxt.Text.Contains('Ğ') || NewsletterEmailTxt.Text.Contains('ğ') || NewsletterEmailTxt.Text.Contains('Ş') || NewsletterEmailTxt.Text.Contains('ş') || NewsletterEmailTxt.Text.Contains('Ç') || NewsletterEmailTxt.Text.Contains('ç') || NewsletterEmailTxt.Text.Contains('Ö') || NewsletterEmailTxt.Text.Contains('ö')));
            if (matchEmail.Success &amp;&amp; TurkishOk)
            {
                bool done = MyHelpers.NewsletterSubscription(NewsletterNameTxt.Text, NewsletterEmailTxt.Text);

                if (!done)
                {
                    NewsErrorLbl.Visible = true;
                    NewsErrorLbl.Text = &quot;Kayıt işleminiz başarısız. Lütfen tekrar deneyin.&quot;;
                }
                else
                {
                    NewsErrorLbl.Visible = false;
                    Response.Redirect(&quot;~/e-bulten-tesekkurler.aspx&quot;);
                }
            }
            else
            {
                NewsErrorLbl.Visible = true;
                NewsErrorLbl.Text = &quot;Lütfen e-posta adresinizi kontrol edin.&quot;;
            }
        }
        else
        {
            NewsErrorLbl.Visible = true;
            NewsErrorLbl.Text = &quot;Lütfen formda gerekli alanları doğru bir şekilde doldurun.&quot;;
        }
</pre><p>Tabii ki namespace&#8217;lerinize aşağıdaki satırı eklemeyi unutmayın.</p><pre><code>
using System.Text.RegularExpressions;
</code></pre>]]></content:encoded> <wfw:commentRss>http://www.rizasirman.com/web_tasarim/asp-net/sunucu-tarafli-e-posta-adresi-validasyonu/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic

Served from: www.rizasirman.com @ 2012-05-19 10:38:24 -->
