【问题标题】:Make a unique circuit in php tor each user在php中为每个用户制作一个独特的电路
【发布时间】:2020-11-29 03:42:58
【问题描述】:

如何更正确地为 php-tor 中的每个用户分配一个独特的电路?现在我使用 CURL 并以一种巧妙的方式为每个用户生成一个独特的电路。但它真的是独一无二的吗?

$ch = curl_init();   

curl_setopt($ch, CURLOPT_URL, 'site.onion'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);
curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:9050');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user'.$user_id.':password');
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_ANY);

$result = curl_exec($ch); 

curl_close($ch);

使用具有不同$user_id 的 CURLOPT_PROXYUSERPWD 可以生成不同的 IP 地址。

这种方法的使用正确性如何? IP 确实发生了变化,事实证明每个用户都有一个唯一的,但是链本身会发生变化吗?还是所有这些 IP 地址都在同一个链下?

我这样在服务器上安装了 Tor:

apt-get install tor

【问题讨论】:

  • 嗨,为什么要为每个用户制作独特的电路?用户如何与您的脚本交互?它会为他们下载东西吗?

标签: php tor


【解决方案1】:

这是 Tor 浏览器所做的,用于将特定域的请求隔离到单个电路。具有相同凭据的每个 SOCKS 请求都会重复使用相同的电路(只要它处于活动状态),并且为新凭据创建一个新电路。

结果是具有不同凭据集的每个请求使用不同的电路,并且应该具有不同的中间节点和出口节点。保护节点不太可能在电路之间改变。

只要电路保持活跃和正常运行,具有这些凭据的请求将使用相同的电路。

根据您的问题,这是正确的使用方法,每个用户都将获得一个独特的电路。根据您创建的数量,不能保证每条线路都会有不同的出口节点,因为出口是有限的。

在之前的回答here 中,我写了一些关于如何监控 Tor 日志的信息,以便您可以隔离流事件以找出它们属于哪些电路以及最终构建电路的节点。您可能会发现这对您的目的很有用,如果您私信我,我可以分享一些未发布的 PHP 代码,以便通过 Tor 控制器自动完成所有这些工作。

【讨论】:

  • 如果您不介意,请分享 PHP 代码。我选择你的答案是正确的:)
  • @ModaL 我很快就会给你那个代码。它依赖于 torutils 的开发版本,我需要在它可共享之前对其进行清理和发布。
  • 嗨@ModaL 抱歉,花费的时间比预期的要长,但我更新了代码并创建了一个示例,展示了如何识别流隔离 SOCKS 客户端使用的电路。您可以根据需要对其进行修改。示例是here。它使用我的 torutils 库来监视 Tor 控制器发送的 STREAM 事件,并将它们与通过 curl 发出的特定域的请求相匹配。如果您对此有任何疑问或想为特定目的对其进行修改,请告诉我。再次感谢您提供赏金。
猜你喜欢
  • 2020-11-27
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 2019-09-15
  • 2017-02-01
  • 1970-01-01
  • 2012-07-09
  • 2017-11-30
相关资源
最近更新 更多