Cross-Site Request Forgery (CSRF)
Description :
Temel fikir, onun tarayıcı POST başlatmak veya saldırı CMS isteği GET edecek bir sayfaya kullanıcıyı kandırmak için.
Imagine you know the email of a CMS powered site administrator. Email him some funny webpage with whatever you want in it. In this page, you craft a form with the data used by the admin panel of the CMS to create a new admin user. Send those data to the website admin panel, with the result in a hidden iframe of your webpage.
Voilà, you got your own administrator account made.
How to prevent it :
Her zamanki yolu tüm formları rastgele kısa ömürlü (saat 15mn) Nonce üretmektir. CMS bir form verilerini aldığınızda Nonce yolunda ise, ilk denetler. Aksi takdirde, veri kullanılmaz.
CMS examples :
More information :
wikipedia sayfada ve üzerine OWASP project.
Bad şifre storing
Description :
Veritabanı kesmek ve WikiLeak gibi bir şey üzerinde yayınlanan olsun düşünün. Kullanıcıların büyük bir kısmı web sitelerinin bir sürü için aynı oturum açma ve parola kullanın bilerek, bunları almak kolay olmak istiyorsun?
Veritabanı verileri kamu kalırsanız Hayır yapılan zararları azaltmak gerekir.
How to prevent it :
- İlk fikir, onları karma etmektir. Çünkü kötü bir fikir olduğu rainbow tables (hash md5 ama örneğin sha512 olmasa bile).
- İkinci fikir: böylece hackerlar her parolayı bruteforce zorundadır karma önce eşsiz bir rasgele tuz ekleyin. Sorun korsan hızlı karma bir sürü hesaplayabiliriz olduğunu.
- Yani, mevcut fikir şifreleri karma için yavaş yapmak için: Eğer sık sık bunu yapmayın çünkü umurumda değil. O 1 ms başına üretilen 1000 karma aldığı Ama saldırgan ağlayacağım.
Sürecini kolaylaştırmak için, phpass bazı şifre guru tarafından geliştirilen kütüphane kullanabilirsiniz.
CMS examples :
More information :
phpass page.
Cross Site Scripting (XSS)
Description
Bu saldırıların amacı, web sitenizin meşru kullanıcı tarafından idam edilecek bazı dosyasını görüntülemek yapmaktır.
Kalıcı ya da değil: Bu iki tür var. İlki kullanıcı kaydedebilirsiniz şey, gönderilen bir istek tarafından verilen parametreler üzerindeki diğer sayısında genellikle gelir. İşte bir örnek, kalıcı değildir:
<?php
if(!is_numeric($_GET['id'])){
die('The id ('.$_GET['id'].') is not valid');
}
?>
Şimdi saldırgan sadece http://www.example.com/vulnerable.php?id=<script>alert('XSS')</script>
gibi bağlantıları gönderebilirsiniz
How to prevent it
Siz müşteriye çıktı şeyi filtre gerekir. Kolay yolu, kullanıcı herhangi bir html kaydetmek izin istemiyorsanız htmlspecialchars kullanmaktır. Onları çıkış html (kendi html veya bbcode gibi diğer şeylerden üretilen bazı ya) izin Ama, çok dikkatli olmak zorunda. İşte img etiketinin "onerror" olayını kullanarak eski bir örnek: vBulletin vulnerability. Yoksa eski Myspace's Samy var.
CMS examples :
More information :
Sen wikipedia ve OWASP kontrol edebilirsiniz. Ayrıca ha.ckers sayfada XSS vektörü bir şey var.
Mail header injection
Description :
Posta başlıkları CRLF (\r\n
) sekansı ile ayrılır. Eğer itibaren bunu kullanıyor gibi (postalar göndermek için bazı kullanıcı verileri kullanın: ya :) için daha başlıklarını enjekte edebilir. Bu ile, sunucudan anonim posta gönderebilirsiniz.
How to prevent it :
Üstbilgi tüm \n
, \r
, %0a
ve %0d
karakteri filtre.
CMS examples :
More information :
Wikipedia her zamanki gibi iyi bir başlangıçtır.
SQL Injection
Description :
Eski klasik. Doğrudan kullanıcı girişini kullanarak bir SQL sorgusu oluşturmak zaman olur. Gerektiği gibi bu giriş hazırlanmış ise, bir kullanıcı o tam olarak ne istediğinizi yapabilirsiniz.
How to prevent it :
Simple. Don't form SQL queries with user input. Use parameterized queries.
Consider any input which is not coded by yourself as user input, be it coming from the filesystem, your own database or a webservice for example.
CMS example :
More information :
Wikipedia ve OWASP konuda gerçekten iyi sayfaları var.
Http response splitting
Description :
E-posta başlığı gibi, http başlıkları CLRF dizisi ile ayrılır. Uygulama çıktı başlıklarına kullanıcı girişi kullanıyorsa, kendi tekne için kullanabilirsiniz.
How to prevent it :
Gibi e-postalar için, filtre \n
, \r
, %0a
ve başlığının bir parçası olarak kullanmadan önce kullanıcı girişi %0d
karakter. Sen de urlencode senin başlıkları.
CMS examples :
More information :
Ben size saldırı, bu tür hakkında bilgilerin bir çok şey bulabileceğiniz gibi biraz tahmin izin vereceğim. OWASP ve Wikipedia.
Session hijacking
Description :
In this one, the attacker want to use the session of another legitimate (and hopefully authenticated) user.
For this, he can either change his own session cookie to match the victim's one or he can make the victim use his (the attacker's) own session id.
How to prevent it :
Nothing can be perfect here :
- if the attacker steal the victim's cookie, you can check that the user session matches the user IP. But this can render your site useless if legitimate users use some proxy which change IP often.
- if the attacker makes the user use his own session ID, just use session_regenerate_id to change the session ID of a user when his rights change (login, logout, get in admin part of the website etc.).
CMS examples :
More information :
Konuyla ilgili Wikipedia sayfa.
Other
- User DoSing : if you prevent bruteforcing of login attempt by disabling the kullanıcı adıs tried and not the IP the attempts come from, anyone can block all your users in 2mn. Same thing when generating new şifres : don't disable the old one until the user confirm the new one (by loging with it for example).
- Dosya sistemi üzerinde bir şeyler yapmak için kullanıcı girişi kullanma. Bu yardımları ile karışık kanser olsaydı böyle Filtre. Bu kaygı kullanımı dahildir ve yolu, kullanıcı girişi kısmen yapılır dosyalarda gerektirir.
- eval, system, exec ya da kullanıcı girişi ile birlikte, bu tür bir şey kullanma.
- Eğer web erişilebilir dizininde web erişilebilir istemediğiniz dosyaları koymayın.
Eğer OWASP sayfada okuyabilirsiniz bir çok şey var.