【问题标题】:detection whether is an e-shop written in Magento检测是否是用 Magento 编写的电子商店
【发布时间】:2015-08-04 22:07:59
【问题描述】:

我正在尝试创建一个可以做一件简单事情的脚本。输入是 URL 列表,输出是用 Magento 编写的那些 eshop 的列表。

我读到没有办法知道 eshop 是 Magento 还是其他东西,但我也读到有很多迹象可以告诉你这个网络页面使用 Magento 几乎 100% 肯定。

所以我找到了这个页面:magento detector,它可以告诉你它是否是 Magento,所以我正在尝试使用他们的信息。

他们说例如:

Magento 的用户界面文件位于名为/skin/ 的目录中。对于前端(不是管理员用户界面),文件位于/skin/frontend。因此,如果页面源中存在此目录,那么该商店很可能在 Magento 上运行。

例如对于这个 eshop:starkk 告诉检测器它是一个 magento,它满足的条件之一就是我上面提到的条件。

如何检查目录是否存在?我看了看:http://www.starkk.de/skin/frontend/ 使用浏览器,但页面出现错误。

还有一个问题:您知道如何检测 Magento 的另一种更好的方法吗?

【问题讨论】:

  • 也许检查错误,您使用浏览器时遇到禁止错误是吗? code = requests.head("http://www.starkk.de/skin/frontend/").status_code
  • 当对目录的请求给出禁止时,这表明(但不是 100%)该目录存在。顺便说一句,通过您提供的链接,将其放入浏览器并查看图标 :-) 或直接发送至starkk.de/favicon.ico
  • 您将不得不解析源代码页面:根据您提供的链接,在 js 中,有名为 varien(magento 的创建者)或 mage 的文件夹,并且文件有提及 magento 的许可证.文件夹 skin/frontend 存在于源 html 中。
  • @Zimmi 谢谢你,starkk 是对的,但是当我查看这个由 Magento 提供支持的网站时:geschenkhexe.ch 我没有看到任何关于 Mageno 的提及。
  • 我只是提出了一些想法,就像头脑风暴一样。我建议首先清楚地分析哪些标志可能表明使用了 magento,然后根据信心对它们进行排序。例如,您可以尝试直接下载 /varien/js.js 之类的文件,如果它与 magento 许可证一起存在并使用,这是一个很好的信号。但是您还需要确定其他标志,因为肯定有商店将所有 js 组合在一个文件中,删除许可证和 cmets。因此,没有符号并不意味着答案是“不是 magento”。

标签: python html magento url


【解决方案1】:

总结一下:

要确定一个网站是否使用 Magento,您通常会首先寻找最能告诉您是否使用 Magento 的标志。其中一些标志会有很高的信心,而另一些则信心低。有时您可能会发现结果相互矛盾的迹象。您需要考虑如何处理这些情况。

首先,Firefox 有一个名为 Wappalyzer 的扩展程序(在撰写本文时网站速度极慢),它决定了在访问网站时使用哪些 Web 应用程序。

简而言之,他们对 Magento 的规则是:

  1. HTTP 响应标头:带有名为“frontend”的键的 Set-Cookie
  2. 文件夹 /js/mage 中的脚本
  3. 使用文件夹 /skin/frontend
  4. DOM 的全局window 对象上,Magento 创建了一个Mage 对象和一个VarienForm 对象。在您提供的链接上,我可以找到 Varien 对象(不是 VarienForm

来源 https://github.com/AliasIO/Wappalyzer/blob/master/src/apps.json#L3423

我一点也不擅长 Python,但我猜第 1、2 和 3 点很容易检查(检查主页源代码中是否存在 用法)。如果您收到一个文件夹的403 Forbidden,请尝试一个显然不存在的文件夹:如果它返回一个404 Not Found,那么403 Forbidden 肯定是一个现有目录。或者确定一个应该始终在此文件夹中的文件并检查其是否存在。

永远不要将结果视为 100% 确定...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多