|
|||||||
| WebMaster & Script'Ler & Template Web Masterlar İçin Web Araçları Asp & PhpVe Diğer Script'Ler Aradığınız Bütün Template'leri Burda Bulabilirsiniz |
![]() |
|
|
Konu Araçları |
|
|
#1 (permalink) |
|
Görev Alma Vakti
![]() ![]() |
Bazi internet kullanıcıları , Database de kayıtlı bilgilerinizi öğreme veya sitenize zarar verme girişiminde bulunabilirler. Bu girişimleri bir nebze olsun engellemek için kullandığınız ASP scriptlerinde bazı noktaları güçlendirerek, Sisteme girişlerini engellemiş olabilirsiniz. Kullanıcılar genellikle; Sisteme karışık bilgiler girerek sistemi yorma ve açık yaratmaktan ibarettir. Bu doküman kısas olarak bu saldırılardan nasıl korunacağınızı anlatıyor. Request Method Kullanımı Bazı programcılar script yazımında Request() komutunu kullanırlar ama bu güvenli bir yöntem değildir. Güvenli olmasını sağlamak için REQUEST_METHOD komutunu kullanabiliriz. Bu komut sadece; · ServerVariables · QueryString · Form · Cookie · ClientCertificate Nesneleri ile kullanılabilir. Herhangi bir form kullanımında kullanılan “Hidden” yani gizli bilgiler, başkaları tarafından değiştirilerek kullanılabilir. Bazı acemileri kandırmak içinse GET yerine POST kullanarak formları taşıyabiliriz, ama bunu da sezen kullanıcılar mutlaka olacaktır. Bu nedenle kısa bir örnek kod vermek istedim. Form Sayfası <form method="POST" action="processform.asp"> <input type="hidden" name="uyeid="<%=Rs("uyeid")%>"> Yeni Mail : <input type="text" name="Email"> <input type="submit"> </form> Processform.asp strUyeId = Request.Form("uyeid") strYeniMail = Request.Form("Email") Buraya kadar gayet güzel ama form sayfasındaki gizli alanı alan kullanıcı bu kodları alıp da HTML derleyicisi kullanarak kendine göre değiştirip istediği bilgiyi sizin processform.asp dosyasına gönderebilir. Ama bunu da engellemek için "REQUEST_METHOD". komutunu kullanacağız. Kullanmamızda ki amaç ise kullanıcının bize gönderdiği bilgiler GET şeklinde gönderirse işlemi durdurmaktır. Bu komut Request.ServerVariables() standartlarında kullanılır. If Request.ServerVariables("REQUEST_METHOD") <> "POST" Then Response.End End If Bu kod; Eğer gelen bilgiler "POST" komutu ile geliyorsa devam et, gelmiyorsa işlemi durdur, anlamına geliyor. Check Referer (Gönderen kontrolü) Çoğumuz Mynet ve Domaindlx gibi hostlarda kullanılan dosyaları başka bir adresten neden ulaşılamadığını merak ediyoruz, Bu sadece birkaç kod dizisinden ibaret olduğunu öğrenince içim rahatladı. Burada kullanılan ise http protokolünü yeterli seviyede kullanmaktır. HTTP_REFERER sayfanıza nerden gelindiğini anlatan bir ASP nesnesidir. Bu nesne ile REQUEST_METHOD birbirine yakın nesnelerdir. Şimdi yazacağımız kod dizisi ise, FORM ve QueryString nesneleri gelen bilgilerin kendi alan adınızdan mı yoksa başka bir alan adından mı geldiğini kontrol edecektir. Public Function CheckReferer() On Error Resume Next Dim strHost, strReferer, blnCheckReferer strHost = Request.ServerVariables("HTTP_HOST") strReferer = Request.ServerVariables("HTTP_REFERER") strReferer = Right(strReferer, Len(strReferer) - (InStr(1, strReferer, "://") + 2)) strReferer = Left(strReferer, InStr(1, strReferer, "/") - 1) If strReferer = strHost Then blnCheckReferer = True Else blnCheckReferer = False End If CheckReferer = blnCheckReferer End Function Gelen Bilgi Kontrölü Formlarla beraber gelen bilgilere karşılık olarak DB’den bir bilgi istendiği zaman küçük bir bilgi kontrolü yapmak, kolay ve sağlam bir güvenlik koşuludur. Burada yapılan işlem ise formdan gelen bilginin bir sayı olup olmadığını kontrol etmek ve eğer bir sayı değil ise girdiyi 0 yapıp formdan gelen bilgiyi sınırlamaktır.. If strUyeId = "" OR IsNumeric(strUyeId) = False OR strUyeId < 0 Then strUyeId = 0 End If Bilgiler korumak için formdan gelen bilgileri düzenlemeye devam ediyoruz. Sıradaki işlem formlarda kullanılan herhangi bir ters işleme neden olabilecek yanlış karakterlerin kontrolünü yapmak. Bunuda aşağıda belirtilen şekilde yapıyoruz. Herhangi bir dizin yolu, dosya yolu belirtmesini engellemek için "../", Dblerle işlem yapılamaması için "--", ";", ve SQL komutları yani "SELECT", "INSERT"<, >"UPDATE", "DELETE", vs. Sonra boşluk ve Tırnak işaretlerinin kontrolünü yapmak gerekir. Ve son olarak HTMLEncode komutu ile formlarda herhangi bir html komutu kullanmalarını engellemektir. strData = Replace(strData, "../", "") strData = Replace(strData, "--", "") strData = Replace(strData, ";", "") strData = Replace(strData, "", "") strData = Server.HTMLEncode(strData) Bu seferlik bu kadar çeviri yeter, Yeni çeviriler çok yakında gelecek, ama isterseniz aşağıda bazı linkler var oraları kontrol edebilirsiniz. |
|
|
![]() |
| Ahantar Kelimeler: asp, guvenligi, script |
| Konu Araçları | |
|
|