Ben bir veritabanı tabloya bilgi gönderen bir form var. Ben bir Javascript ile kontrol var ama Javascript kapalı iken spam PHP ile veritabanına http ve bu tür girmeden durdurmak için en iyi yolu nedir?
Sen formda bir CAPTCHA uygulamak:
http://en.wikipedia.org/wiki/CAPTCHA
Edit: Ayrıca kesinlikle sunucu tarafında form verilerini doğrulamak ve her zamanki gibi vb html etiketleri kontrol edin, ama CAPTCHA otomatik spam saldırılarına karşı yardımcı olmalıdır.
Müşteri asla güvenme. Her zaman sunucu tarafında tüm verileri doğrulamak. Form doğrulama için JavaScript sadece ek bir özellik olabilir. Sen içerik sevmiyorum bazı dizeleri, örneğin olup olmadığını kontrol etmek temel PHP fonksiyonları ile başlayabiliriz. "Http://".
if (strpos('http://', $_POST['message']) !== false) { /* refuse */ }
Sen CSRF protection spam önlemek için kullanabilirsiniz, ben oldukça etkili bulduk.
Içeriği ile teslim asla gizli bir alan - başka sinsi yöntem "bal küpü" alanını eklemektir. Bu dolu ise, spam biliyorum. Bu yöntemlerin hiçbiri can sıkıcı bir CAPTCHA gerektirir.
(Belki daha fazlası var) paralel olarak uygulanması gereken düşünülmesi gereken iki şey vardır.
Peki, CAPTCHA için siz yine de sunucu tarafında doğrulama Neler yapmak gerekir. Ama captcha'yı uygulamak için karar bile, sunucu tarafında veri doğrulama yapmak gerekir.
Ben ekinizi yapmadan önce htmlentities() a> işlevini kullanmanızı öneririz.
Açıkçası insert yanı sıra veritabanı ile etkileşim için parametrized queries kullanılarak yapılmalıdır. Capatcha kesinlikle bir seçenek, ama daha what onlar gönderebilir değil, how often birisi gönderebilir sınırlamak için hizmet vermektedir. Eğer istemediğiniz şeyleri girdikten itibaren kullanıcı önlemek için (tekrar htmlentities() fonksiyonu) kaçan HMTL kullanın.