![]() |
| | #1 |
| Bilgilendirme ; Bilindiği üzere forumlara çokca botlar üye olmakta bunların en önemli sebeplerinden birtanesi ise kuralların otomatik onaylı olmasından kaynaklı.. Kurallar sayfasında eğerki kuralları kabul edilen kisimdaki kutu onaylı olursa botlar otomatik olarak kayıt olma sayfasına ulaşabiliyor bu sebeple ufak bir düzenleme yapıldı.. Bu sayede mobil uyumlu ve bot korumalı bir kayıt - kurallar sayfasına sahip olacaksınız.. Kurulum gayet kolay.. admincp > Stiller & Temalar > Temalarda Ara > Arama Yerine > register_rules yazin. Düzenle & Değiştir tıklayın var olan kodu aşağıdaki ile değiştirin ve kaydet tıklayın... Cloudflare veya Farklı Önbellek tutan 3 parti yazılım vs varsa çerezleri temizleyin. Sistem Özellikleri ; Her sayfa yüklendiğinde rastgele matematik sorusu üretilir Yanlış cevap girilirse yeni soru oluşturulur Doğru cevap girilmeden form gönderilemez Basit ama etkili bot engelleme yöntemi - CSS ile tamamen gizlenmiş form alanları İnsanlar göremez ve dolduramaz Botlar otomatik tüm alanları doldurur Bu alanlar dolarsa = BOT TESPİT EDİLDİ position: absolute; left: -9999px ile ekran dışına alınmış - Sayfa açılma zamanı kaydedilir Form gönderme zamanı hesaplanır 3 saniyeden az sürede gönderim = BOT İnsanların okuma zamanı simüle edilir - Kullanıcı en az 1 sekme değiştirmeli 3 sekme var: Genel / Kategori / Üye Kuralları Tab değişimi sayılır Botlar genelde tab değiştirmez - Otomatik işaretli GELMİYOR Kullanıcı manuel işaretlemeli JavaScript ile zorla kapalı tutuluyor İşaretlenmeden buton aktif olmaz - Sayfa ilk yüklendiğinde buton KAPALI Hem checkbox hem captcha doğru olmalı İki koşul da sağlanınca buton AKTİF Botlar disabled butonlara tıklayamaz - 3 farklı gizli token üretilir JavaScript ile dinamik oluşturulur Botlar bu tokenleri üretemez - Ek Güvenlik olarak Google reCAPTCHA v2 veya v3 IP bazlı rate limiting Mouse hareket analizi Yapılabilir... Görsel ; ![]() Düzenlenecek Yer ; > FORUMADI < yazan yere kendi forum adınızı yazmanız gerekir. Kod ve Kurallar ; Kod
$stylevar[htmldoctype]
<html xmlns="https://www.w3.org/1999/xhtml" dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
$headinclude
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"/>
<title>$vboptions[bbtitle] - <if condition="$show['coppa']">$vbphrase[coppa_rules]<else />$vbphrase[forum_rules]</if></title>
<style>
.tab-container {
margin: 20px 0;
width: 100%;
}
.tab-buttons {
display: flex;
flex-wrap: wrap;
border-bottom: 2px solid #ddd;
background-color: #f5f5f5;
border-radius: 4px 4px 0 0;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
width: 100%;
}
.tab-button {
flex: 1;
min-width: 120px;
padding: 12px 15px;
background-color: #f5f5f5;
border: none;
cursor: pointer;
font-size: 14px;
font-weight: 500;
color: #333;
transition: all 0.3s ease;
white-space: nowrap;
text-align: center;
border-bottom: 3px solid transparent;
}
.tab-button:hover {
background-color: #e8e8e8;
color: #0066cc;
}
.tab-button.active {
background-color: #fff;
color: #0066cc;
border-bottom: 3px solid #0066cc;
}
.tab-button i {
margin-right: 8px;
}
.tab-content {
display: none;
padding: 20px;
background-color: #fff;
border: 1px solid #ddd;
border-top: none;
animation: fadeIn 0.3s ease;
}
.tab-content.active {
display: block;
}
@[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]
rames fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.tab-content ol {
padding-left: 20px;
line-height: 1.8;
}
.tab-content li {
margin-bottom: 12px;
text-align: justify;
}
.tab-content li a {
color: #333;
text-decoration: none;
}
.tab-content li a:hover {
color: #0066cc;
text-decoration: underline;
}
.alert-warning {
background-color: #fff3cd;
border: 1px solid #ffc107;
border-radius: 4px;
padding: 12px 15px;
margin: 15px 0;
color: #856404;
}
.alert-warning strong {
color: #d32f2f;
}
.alert-warning i {
margin-right: 8px;
color: #ffc107;
}
.agreement-section {
background-color: #f0f7ff;
border: 2px solid #0066cc;
border-radius: 4px;
padding: 15px;
margin: 20px 0;
text-align: center;
}
.agreement-section label {
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-weight: 500;
color: #333;
}
.agreement-section input[type="checkbox"] {
width: 18px;
height: 18px;
margin-right: 10px;
cursor: pointer;
}
.agreement-section input[type="checkbox"]:checked {
accent-color: #0066cc;
}
.captcha-section {
background-color: #fff;
border: 2px solid #ddd;
border-radius: 4px;
padding: 20px;
margin: 20px 0;
text-align: center;
}
.captcha-question {
font-size: 18px;
font-weight: 600;
color: #333;
margin-bottom: 15px;
}
.captcha-input {
width: 100%;
max-width: 300px;
padding: 12px;
font-size: 16px;
border: 2px solid #ddd;
border-radius: 4px;
text-align: center;
margin: 0 auto;
}
.captcha-input:focus {
outline: none;
border-color: #0066cc;
}
.captcha-error {
color: #dc3545;
font-size: 14px;
margin-top: 10px;
display: none;
}
.button-group {
margin-top: 20px;
text-align: center;
width: 100%;
}
.button {
background-color: #0066cc;
color: white;
padding: 12px 30px;
border: none;
border-radius: 4px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
display: inline-block;
}
.button:hover:not(:disabled) {
background-color: #0052a3;
box-shadow: 0 2px 8px rgba(0, 102, 204, 0.3);
}
.button:disabled {
background-color: #ccc;
cursor: not-allowed;
box-shadow: none;
}
table.tborder {
width: 100% !important;
max-width: 100%;
}
.panel {
width: 100%;
}
.panel > div {
width: 100% !important;
max-width: 100%;
}
@media (max-width: 768px) {
.tab-button {
min-width: 100px;
padding: 10px 8px;
font-size: 12px;
}
.tab-button i {
display: block;
margin-right: 0;
margin-bottom: 5px;
}
.tab-content {
padding: 15px;
}
.tab-content ol {
padding-left: 15px;
}
.tab-content li {
font-size: 14px;
margin-bottom: 10px;
}
.agreement-section {
padding: 12px;
}
.agreement-section label {
flex-direction: column;
font-size: 14px;
}
.agreement-section input[type="checkbox"] {
margin-right: 0;
margin-bottom: 8px;
}
.captcha-question {
font-size: 16px;
}
.captcha-input {
max-width: 100%;
}
}
@media (max-width: 480px) {
.tab-button {
min-width: 80px;
padding: 8px 5px;
font-size: 11px;
}
.tab-content {
padding: 12px;
}
.button {
width: 100%;
padding: 12px 15px;
}
}
.honeypot-field {
position: absolute !important;
left: -9999px !important;
width: 1px !important;
height: 1px !important;
opacity: 0 !important;
pointer-events: none !important;
}
</style>
</head>
<body>
$header
<br />
<br />
<form action="register.php?do=register" method="post" id="rulesForm">
<input type="hidden" name="s" value="$session[sessionhash]" />
<input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
<input type="hidden" name="do" value="register" />
<input type="hidden" name="url" value="$url" />
<input type="hidden" name="month" value="$month" />
<input type="hidden" name="day" value="$day" />
<input type="hidden" name="year" value="$year" />
<if condition="$show['coppa']">
<input type="hidden" name="who" value="coppa" />
<else />
<input type="hidden" name="who" value="adult" />
</if>
<input type="hidden" name="bot_check" value="" id="bot_check" />
<input type="hidden" name="human_verify" value="" id="human_verify" />
<input type="hidden" name="interaction_time" value="" id="interaction_time" />
<div class="honeypot-field">
<input type="text" name="hp_website" value="" tabindex="-1" autocomplete="off" />
<input type="email" name="hp_email" value="" tabindex="-1" autocomplete="off" />
<input type="checkbox" name="hp_confirm" tabindex="-1" />
</div>
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
<td class="tcat">
<i class="fa fa-gavel"></i> KAYIT ALANI KURALLAR SAYFASI
</td>
</tr>
<tr>
<td class="panelsurround" align="center">
<div class="panel">
<div style="width:100%;" align="$stylevar[left]">
<div class="alert-warning">
<i class="fa fa-exclamation-triangle"></i>
<strong>ÖNEMLİ KURALLAR!</strong>
</div>
<div class="alert-warning">
<i class="fa fa-users"></i>
<strong>Multi (Çoklu) üyelik kullanımı yasaktır. Bu tür üyelikler onaylanmaz. Tespiti halinde silinir, asıl üyelik uyarılır. Tekrarı halinde forumdan uzaklaştırılır.</strong>
</div>
<div class="tab-container">
<div class="tab-buttons">
<button type="button" class="tab-button active" data-tab="tab1">
<i class="fa fa-list"></i> Genel Kurallar
</button>
<button type="button" class="tab-button" data-tab="tab2">
<i class="fa fa-folder"></i> Kategori Kurallar
</button>
<button type="button" class="tab-button" data-tab="tab3">
<i class="fa fa-user"></i> Üye Kurallar
</button>
</div>
<div id="tab1" class="tab-content active">
<h3><i class="fa fa-list"></i> A MADDESİ - GENEL FORUM KURALLAR</h3>
<ol>
<li><a>Forumda, Türkiye Cumhuriyeti yasalarını ve uluslararası kanunları, anlaşmalar, tüzükleri çiğneyen mesajlar yazılmaz, ilgili materyal gönderilemez.</a></li>
<li><a>Forumda dini, siyasi veya politik içerikli mesajlar ile propaganda yapılmaz.</a></li>
<li><a>Forumda yasal olmayan site adresleri vermek; hack, crack, *****, serial, edonkey isteği içeren mesajlar yazmak; mp3 isteğinde bulunmak; yazılım telif hakları sebebiyle Türkiye'de temsilciliği bulunan firmalara ait korsan yazılım linkleri vermek; site şifreleri dağıtmak; illegal link, içerik ve yazı yollamak kesinlikle yasaktır ve üyelik iptali nedenidir.</a></li>
<li><a>Forumda açılan konu veya mesajlar, konuyu açan üyeye aittir. Bu konuda >FORUMADI< sorumluluk kabul etmemektedir.</a></li>
<li><a>Forum'un işleyiş ve kurallar konusunda katılımcılar bilgilendirilmek forum yöneticilerinin veya moderatörlerin görevi değildir. Katılımcılar bu kurallar okuyup uyumak zorundadır.</a></li>
<li><a>Forum üzerinde bulunan katılımcılar forum üzerinde herhangi bir hak talep edemez.</a></li>
<li><a>Forum kurallar günün şartlarına göre değiştirilebilir ve değiştikten sonra hemen geçerlidir; itirazı edilemez.</a></li>
<li><a>Site ve Forum içindeki linkler her zaman denetlenemeyeceği gibi içerikleri hakkında uygunsuz olan herhangi bir olaydan >FORUMADI< yöneticileri sorumlu değildir.</a></li>
<li><a>Forum üyeler 1 (bir) yıl içerisinde giriş yapmadıklarına, yönetim bu nickleri sürekli online olan başka kullanıcıya devredebilme hakkına sahiptir.</a></li>
<li><a>Forum da kayıtlı nickler, ForumAilem.Com e aittir. Yönetim gerek duyduğunda üyelik silebilme hakkına sahiptir.</a></li>
</ol>
</div>
<div id="tab2" class="tab-content">
<h3><i class="fa fa-folder"></i> B MADDESİ - FORUM KATEGORİ KURALLAR</h3>
<ol>
<li><a>Forumda, Türkiye Cumhuriyeti yasalarını ve uluslararası kanunları, anlaşmalar, tüzükleri ve diğer dünya devletlerini rencide edici ve bunlara karşı aykırı olan konular açılmaz.</a></li>
<li><a>Forumda din, dil ve ırk ayrımı ile alakalı olan ve ayrıca siyasi propaganda amaçlarla açılmak istenen konulara izin verilmez.</a></li>
<li><a>Kategoriye açılan konulardan tamamen katılımcılar sorumludur. Bununla ilgili 3. şahıslar veya yöneticiler sorumlu tutulamaz.</a></li>
<li><a>Konu başlığı açılırken Türkçe imla ve dil kuralları uyulması gerekir. Aksi durumda kategori yöneticilerinin düzeltme hakkı bulunmaktadır.</a></li>
<li><a>Forum üzerinde Türkçe dili dışında herhangi bir dil kullanılmaz.</a></li>
<li><a>Katılımcılar, aynı konuyu aynı veya farklı başlıklar altında birden fazla kez açamaz.</a></li>
<li><a>Katılımcılar, Hacking, cracking, ***** gibi yasa dışı konularla ilgili başlık açamazsınız, mesaj yazamazsınız. Oyunlar da dahil olmak üzere herhangi bir yazılım için seri numarası, CD key, crack, keygen gibi bir uygulama isteğinde bulunamazsınız. Bu tür bilgilerini/uygulamalarını paylaşamazsınız.</a></li>
<li><a>Telif haklarıyla korunan müzik ve filmlerin yasa dışı kopyalarını (MP3, DivX vs.) paylaşamazsınız. Bu tür isteklerle ilgili başlıklar silinecektir.</a></li>
<li><a>Forumlarda belirlenmişi kategorilere uygun olmayan bir konu açamazsınız.</a></li>
<li><a>Kategorilere 3. şahısları rencide edici şekilde konular açamaz ve bu konuda kaba lisan kullanamazsınız.</a></li>
<li><a>Forum üzerinde yeni bir konu açarak 3. şahıslar ile aranızda ki özel problemleri forum üzerinde tartışamazsınız.</a></li>
<li><a>Forum üzerinde yeni bir konu açmadan önce daha önce aynı konu'nun açılıp açılmadığını arama butonu ile kontrol ediniz. Aynı konuların bulunması durumunda ise konu başlığı yöneticiler tarafından silinecektir.</a></li>
<li><a>Forum kategorilerine içeriği gereksiz ve anlamı olmayan konuları açmamaya özen göstermelisiniz. Böyle bir durumda açılan konu başlığı yöneticiler tarafından silinecektir.</a></li>
<li><a>Konu başlığı altında konu dışına çıkılan mesajlar göndermek yasaktır. Böyle bir durumda mesajlarınız yetkililer tarafından silinecektir. Bu şekilde mesajları sürdürmeniz halinde yetkililer yaptırım uygulama hakkına sahiptir.</a></li>
<li><a>Konu başlıkları altında ikili tartışmalara girmek kesinlikle yasaktır. Böyle bir durumun yaşanması halinde tartışmaya sebep olan mesajlar silinecektir. Ve bu konu da yetkililer üyelere yaptırım uygulama hakkına sahiptir.</a></li>
<li><a>Başlıklarınızda açıklayıcı olmalısınız. Hiçbir açıklayıcılığı olmayan "yardım edin", "lütfen dikkat", "acil" ve benzeri başlıklar kullanmamalısınız.</a></li>
</ol>
</div>
<div id="tab3" class="tab-content">
<h3><i class="fa fa-user"></i> C MADDESİ - KATILIMCI (ÜYE) KURALLAR</h3>
<ol>
<li><a>Forum ortamında veya özel mesajlarınızda genel ahlak kuralları aykırı, kişiyi/kuruluşları küçük düşürücü, hakaret niteliğinde sözler kullanamazsınız.</a></li>
<li><a>Forum mesajlarınızda ve imzanızda ortaklık bağlantısı (affiliate linki) yayımlayamazsınız.</a></li>
<li><a>Özel mesaj yoluyla hiçbir üyemizi rahatsız edecek mesajlar gönderemezsiniz.</a></li>
<li><a>Üyeler kendi rumuzlarından sorumludur. Rumuzlarda yaşanan herhangi problemlerde sorumluluk rumuz sahibine aittir.</a></li>
<li><a>Üyeler yazdıkları mesajlardan sorumludur. 3. şahısları veya yöneticileri bu konuda sorumlu tutamaz.</a></li>
<li><a>Forum moderatörlerinden ve editörlerden özel mesajla teknik destek istemeyin. Moderatör ve editörlerimiz teknik destek amacılı olmayan tüm özel mesajlarınıza açıktır.</a></li>
<li><a>Türkçeyi mümkün olduğunca doğru kullanmaya ve IRC lisanı ile mesaj yazmamaya gayret ediniz. Yöneticilerin uygunsuz kullanımları düzenleme veya silme hakkı bulunmaktadır.</a></li>
<li><a>Forumun huzurunu bozan veya forumda bulunması istenmeyen kişiler, uyarı verilmeksizin ve kurallara bağlı kalarak forumdan uzaklaştırılabilirler.</a></li>
</ol>
</div>
</div>
<div class="captcha-section">
<div class="captcha-question">
<i class="fa fa-shield"></i> İnsan Doğrulama
</div>
<p style="margin-bottom: 15px; color: #666;">Lütfen aşağıdaki soruyu cevaplayın:</p>
<p id="captchaQuestion" style="font-size: 20px; font-weight: bold; color: #0066cc; margin-bottom: 15px;"></p>
<input type="text" id="captchaAnswer" class="captcha-input" placeholder="Cevabınızı yazın" autocomplete="off" required />
<div class="captcha-error" id="captchaError">
<i class="fa fa-exclamation-circle"></i> Lütfen doğru cevabı giriniz!
</div>
</div>
<div class="agreement-section">
<label for="cb_rules_agree">
<input type="checkbox" name="agree" id="cb_rules_agree" value="1" />
<strong>Tüm kuralları okudum, anladım ve kabul ediyorum.</strong>
</label>
</div>
<div class="button-group">
<input type="submit" class="button" id="submitBtn" value="Kayıt Ol" accesskey="s" disabled />
</div>
</div>
</div>
</td>
</tr>
</table>
</form>
<br />
<br />
$footer
<script>
document.addEventListener('DOMContentLoaded', function() {
const pageLoadTime = Date.now();
let tabInteractions = 0;
let captchaNum1, captchaNum2, correctAnswer;
function generateCaptcha() {
captchaNum1 = Math.floor(Math.random() * 10) + 1;
captchaNum2 = Math.floor(Math.random() * 10) + 1;
correctAnswer = captchaNum1 + captchaNum2;
document.getElementById('captchaQuestion').textContent = captchaNum1 + ' + ' + captchaNum2 + ' = ?';
}
generateCaptcha();
document.getElementById('bot_check').value = Math.random().toString(36).substring(7);
document.getElementById('human_verify').value = btoa(Date.now().toString());
const tabButtons = document.querySelectorAll('.tab-button');
const tabContents = document.querySelectorAll('.tab-content');
tabButtons.forEach(button => {
button.addEventListener('click', function(e) {
e.preventDefault();
tabInteractions++;
tabButtons.forEach(btn => btn.classList.remove('active'));
tabContents.forEach(content => content.classList.remove('active'));
this.classList.add('active');
const tabId = this.getAttribute('data-tab');
document.getElementById(tabId).classList.add('active');
});
});
const agreeCheckbox = document.getElementById('cb_rules_agree');
const submitBtn = document.getElementById('submitBtn');
const captchaAnswer = document.getElementById('captchaAnswer');
const captchaError = document.getElementById('captchaError');
agreeCheckbox.checked = false;
submitBtn.disabled = true;
function checkFormValidity() {
const captchaValid = parseInt(captchaAnswer.value) === correctAnswer;
submitBtn.disabled = !(agreeCheckbox.checked && captchaValid);
}
agreeCheckbox.addEventListener('change', checkFormValidity);
captchaAnswer.addEventListener('input', function() {
captchaError.style.display = 'none';
checkFormValidity();
});
document.getElementById('rulesForm').addEventListener('submit', function(e) {
const currentTime = Date.now();
const timeSpent = (currentTime - pageLoadTime) / 1000;
if (!agreeCheckbox.checked) {
e.preventDefault();
alert('Lütfen kuralları okudum ve kabul ediyorum onay kutusunu işaretleyiniz.');
agreeCheckbox.focus();
return false;
}
const userAnswer = parseInt(captchaAnswer.value);
if (userAnswer !== correctAnswer) {
e.preventDefault();
captchaError.style.display = 'block';
captchaAnswer.value = '';
captchaAnswer.focus();
generateCaptcha();
submitBtn.disabled = true;
return false;
}
const honeypotWebsite = document.querySelector('input[name="hp_website"]');
const honeypotEmail = document.querySelector('input[name="hp_email"]');
const honeypotConfirm = document.querySelector('input[name="hp_confirm"]');
if (honeypotWebsite && honeypotWebsite.value !== '') {
e.preventDefault();
console.log('Bot tespit edildi: website');
return false;
}
if (honeypotEmail && honeypotEmail.value !== '') {
e.preventDefault();
console.log('Bot tespit edildi: email');
return false;
}
if (honeypotConfirm && honeypotConfirm.checked) {
e.preventDefault();
console.log('Bot tespit edildi: confirm');
return false;
}
if (timeSpent < 3) {
e.preventDefault();
alert('Lütfen kuralları okumak için daha fazla zaman ayırın.');
return false;
}
if (tabInteractions < 1) {
e.preventDefault();
alert('Lütfen tüm kuralları okuyun.');
return false;
}
if (!document.getElementById('bot_check').value || !document.getElementById('human_verify').value) {
e.preventDefault();
alert('Güvenlik hatası. Lütfen sayfayı yenileyip tekrar deneyiniz.');
return false;
}
document.getElementById('interaction_time').value = timeSpent;
return true;
});
});
</script>
</body>
</html>
________________ S & S | |
| |
| Konuyu Toplam 2 Üye okuyor. (1 Kayıtlı üye ve 1 Misafir) | |
| Oldy |
| |