其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

php网站如何防采集,被采集时随机植入一些字符

GG网络技术分享 2025-03-18 16:15 0


您可以使用 JavaScript 在客户端进行验证,以确保网页只被真实用户浏览,而非被爬虫收集。具体实现方式有很多,下面是一种简单的方法:

  1. 在网页上放置一个隐藏的输入框。
  2. 在 JavaScript 代码中随机生成一个字符串,将其赋值给隐藏输入框。
  3. 在提交表单时,在 PHP 代码中验证隐藏输入框的值。

下面是一个示例代码,可以在网页的 head 标签中放置:

JavaScript 代码:

<script>

function makeid(length) {

var result = '';

var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

var charactersLength = characters.length;

for ( var i = 0; i < length; i++ ) {

result += characters.charAt(Math.floor(Math.random() * charactersLength));

}

return result;

}

document.getElementById("token").value = makeid(10);

var token = document.getElementById("token").value;

<?php $_SESSION['token'] = token;?>

</script>

HTML 代码:

<form method="post" action="your-server-side-code.php">

<input type="hidden" name="token" id="token" value="">

<!-- other form elements here -->

<input type="submit" value="Submit">

</form>

PHP 代码:

<?php

session_start();

$token = $_POST['token'];

if($token !== $_SESSION['token']) {

// Handle invalid token, for example:

echo "Invalid token!";

exit;

} else {

// Handle valid token, for example:

echo "Valid token!";

// Perform the rest of your logic here

}

?>

这段代码中,JavaScript 代码生成一个10位长度的随机字符串并将其赋值给隐藏输入框。在页面加载时将这个token存储到session中。在提交表单时,PHP 代码检查提交的token值和session中的token是否相同,如果相同则说明页面是通过真实用户访问的,反之则是被采集了。

请注意, 这只是一个简单的验证方式,并不能100%防止爬虫采集,高级的爬虫可能会绕过这种验证。

标签:

提交需求或反馈

Demand feedback