AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[dkim](server)

Martin Hope
Jiří
Asked: 2024-12-29 00:46:29 +0800 CST

DKIM 密钥有何用途?

  • 7

文档中opendkim-genkey提到了开关的存在-r:

限制密钥仅用于电子邮件签名。默认允许密钥用于任何服务。

我想知道这是否意味着密钥实际上可以用于除签名邮件之外的其他用途。以及-r在生成密钥时包含或不包含开关是否有任何理由。

dkim
  • 1 个回答
  • 69 Views
Martin Hope
Dmitry
Asked: 2023-11-02 00:38:00 +0800 CST

使用 ssh-keygen 创建一对适合 DKIM 设置的密钥

  • 4

问题

创建一对适合DKIM设置使用的密钥的正确方法是什么ssh-keygen?

给出相应的解决方案openssl:

# creates a private key
openssl genrsa -out sample.key 1024

# creates a public key 
openssl rsa -in sample.key -pubout -out sample.pub

故事

我试图使用DKIM以下过程生成密钥:

# creates a pair of keys: sample & sample.pub
ssh-keygen -m PEM -t rsa -b 1024 -f sample

# coverts the public key into the PEM format
ssh-keygen -f sample.pub -m PEM -e > sample.pem.pub

PEM公钥内容示例:

-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAOO3Emm+KdOKKhwlCjLXIE1R76KlWY6xSVfHsjE3uuMcF0BDKhJS2Kg3
WjhdnV2z5XAQDAxknQvx+sxxbsBye6Zc2VnNA9upDVVlNc4I6zl1N75CY7F1Nfbj
wDrpWqGJuBPsousqj79dJ/JM0pzCn71IkEumU2Ck3AULSnT9MLeZAgMBAAE=
-----END RSA PUBLIC KEY-----

构造DKIM记录:

v=DKIM1; p=MIGJAoGBAOO3Emm+KdOKKhwlCjLXIE1R76KlWY6xSVfHsjE3uuMcF0BDKhJS2Kg3WjhdnV2z5XAQDAxknQvx+sxxbsBye6Zc2VnNA9upDVVlNc4I6zl1N75CY7F1NfbjwDrpWqGJuBPsousqj79dJ/JM0pzCn71IkEumU2Ck3AULSnT9MLeZAgMBAAE=

我使用https://dkimcore.org/c/keycheck来验证 DNS 记录,这使我无法获取所提供的值,并显示以下消息:

这似乎不是有效的 RSA 公钥: RSA.xs:178: OpenSSL error: bad tag at blib/lib/Crypt/OpenSSL/RSA.pm (自动分割成 blib/lib/auto/Crypt/OpenSSL/RSA /new_public_key.al) 第 91 行。

尝试过这些版本:

$ ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
OpenSSH_8.1p1, OpenSSL 1.1.1d  10 Sep 2019
OpenSSH_9.4p1, OpenSSL 3.1.2 1 Aug 2023

openssl幸运的是,我得到了上面提到的解决方法。但由于经常ssh-keygen 被 提到作为密钥生成的有效工具,我想知道到底是什么方法? DKIM

dkim
  • 1 个回答
  • 69 Views
Martin Hope
madman_xxx
Asked: 2022-11-12 02:38:37 +0800 CST

使用另一个域的 DKIM 密钥签名的电子邮件是否应该被视为垃圾邮件?

  • 5

我时不时地浏览我的垃圾邮件文件夹(为了科学!)。最近(将 DKIM Verifier 插件添加到我的 MUA 后)我注意到一些电子邮件具有有效的 DKIM 签名,但 Verifier 指出发件人域和签名域不同。这让我想到:

像这样的电子邮件应该被无条件地视为垃圾邮件吗?是否存在此类电子邮件合法的情况?

dkim
  • 2 个回答
  • 32 Views
Martin Hope
Karl.S
Asked: 2022-10-27 12:19:32 +0800 CST

我不了解有关我的政策的 DMARC 报告

  • 6

我的 DMARC 设置似乎无法按预期工作。

首先,有几点需要注意:

  • 域是mydomain.com (显然不是真实的);
  • 域和邮件提供商是gandi.net;
  • 我使用Amazon SES从使用的网站发送电子邮件noreply@mydomain.com;
  • 我使用Gmail发送和接收电子邮件me@mydomain.com:

SPF记录设置为TXTon :mydomain.com

"v=spf1 include:_mailcust.gandi.net include:amazonses.com include:_spf.google.com ~all"
  • include:_mailcust.gandi.net允许gandi.net使用mydomain.com;发送电子邮件
  • include:amazonses.com允许amazonses.com使用mydomain.com;发送电子邮件
  • include:google.com允许google.com使用mydomain.com;发送电子邮件
  • ~all允许任何其他服务器使用发送电子邮件,mydomain.com但会导致 SPF 检查失败(softfail)

DMARC记录设置为TXTon :_dmarc.mydomain.com

"v=DMARC1; p=quarantine; sp=reject; pct=5; fo=1; rua=mailto:dmarc@mydomain.com;"
  • p=quarantine递送未通过 SPF/DKIM 检查的电子邮件并将其标记为垃圾邮件;
  • sp=reject拒绝使用具有子域的地址发送的电子邮件,例如noreply@news.mydomain.com;
  • pct=5将政策(p而不是sp?)应用于 5% 的电子邮件;
  • fo=1发送 DKIM 故障或SPF 故障报告;

现在奇怪的事情,在这个 DMARC RUA 报告中:

  <record>
    <row>
      <source_ip>40.107.12.85</source_ip>
      <count>1</count>
      <policy_evaluated>
        <disposition>none</disposition>
        <dkim>pass</dkim>
        <spf>fail</spf>
      </policy_evaluated>
    </row>
    <identifiers>
      <header_from>mydomain.com</header_from>
    </identifiers>
    <auth_results>
      <dkim>
        <domain>GovSIPF.onmicrosoft.com</domain>
        <result>pass</result>
        <selector>selector1-GovSIPF-onmicrosoft-com</selector>
      </dkim>
      <dkim>
        <domain>mydomain.com</domain>
        <result>pass</result>
        <selector>gm1</selector>
      </dkim>
      <spf>
        <domain>administration.gov.pf</domain>
        <result>pass</result>
      </spf>
    </auth_results>
  </record>
  • 源IP40.107.12.85来自outlook.com但我不使用outlook;
  • 域有一个 DKIM 块GovSIPF.onmicrosoft.com,GovSIPF 是我的客户之一;
  • 域中有一个 SPF 块,该域administration.gov.pf是他们用于电子邮件地址的域,例如someone@administration.gov.pf;

我不明白为什么我看到该域的 SPF 阻止administration.gov.pf,这是否意味着他们发送了一封电子邮件,其地址类似于someone@mydomain.com通过 outlook.com 服务器?


另一个 DMARC 报告略有不同:

  <record>
    <row>
      <source_ip>202.90.68.50</source_ip>
      <count>1</count>
      <policy_evaluated>
        <disposition>none</disposition>
        <dkim>pass</dkim>
        <spf>fail</spf>
      </policy_evaluated>
    </row>
    <identifiers>
      <header_from>mydomain.com</header_from>
    </identifiers>
    <auth_results>
      <dkim>
        <domain>mydomain.com</domain>
        <result>pass</result>
        <selector>gm1</selector>
      </dkim>
      <spf>
        <domain>mydomain.com</domain>
        <result>softfail</result>
      </spf>
    </auth_results>
  </record>
  • 源 IP202.90.68.50来自mana.pf本地 ISP,但我们不使用它;
spf dkim
  • 2 个回答
  • 42 Views
Martin Hope
goldilocks
Asked: 2022-04-21 08:10:20 +0800 CST

(为什么)电子邮件服务器会因为 DKIM 而停止发送 DMARC 报告吗?

  • 2

我有一台运行多年的个人电子邮件服务器;发送邮件很少出现问题,所以我从来没有真正了解过像 SPF、DMARC 和 DKIM 这样的东西。最近,在升级系统时,我决定这样做。

SPF 非常简单,因为我使用一个固定的 IP 地址。

DMARC 几乎一样简单;我最初使用“无”的策略来接收报告并将其放置一两个星期,然后将其切换为拒绝。

我现在已经为邮件服务器实现了一个 DKIM 签名过滤器(Courier MTA,没有为此做好准备)。对于我使用的复杂位dkimpy。这也有一个简单的验证工具,它适用于整个消息,它是否有自己的查找等,这意味着它是虚拟证明,因为只有一种使用它的方法(而签名可以通过各种方式配置并且可能离开留给我把它搞砸的空间)。这传递了我认为应该传递的消息,而传递了我认为不应该传递的消息,所以我对它的工作原理感到相当满意;我已经在从服务器收到的消息上运行它。目前,为了尽量减少问题,我只签署了正文和 From 标头。

但是,我的邮件都没有通过我的测试帐户——一个是 gmail,另一个来自我的 ISP。更重要的是,虽然我现在在 DMARC 记录中同时拥有 rua 和 ruf 地址,但我没有收到任何关于它们的报告。以前,他们都像发条一样。

如果我所做的只是关闭过滤器(所以没有 DKIM sig),一切都会再次运行。我已经检查过服务器实际上在所有情况下都在尝试;失败的 DKIM 似乎会超时并关闭连接,从而导致无休止的延迟——这似乎有点奇怪,因为这意味着“被拒绝”的邮件甚至没有被检查,但删除签名就可以了让它再次被接受。我将把它归结为 Courier 日志记录中的模棱两可。

我知道这里没有人受任何法律的约束,但这是正常的政策吗?假设 DKIM 签名错误,接收服务器不应该向我发送 DMARC 报告吗?

所以我现在在一条小溪上。尽管像 MXToolbox 这样的东西给了我很好的色彩,但我还没有找到一个免费的服务来通过接收邮件来主动测试 DKIM 签名,除了一个似乎已经完成了其他服务器所做的事情——从不接受它应该测试的邮件(不知道这是否是一个潜在的线索)。

以下是来自的相关 DNS 记录dig:

  • 防晒指数:cognitivedissonance.ca. 3600 IN TXT "v=spf1 ip4:138.197.150.177 -all"

  • 大金:

      aporia._domainkey.cognitivedissonance.ca. 3600 IN TXT "v=DKIM1; k=rsa; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAosptGk+J2mdjjc7RWmcnQ3yBqx1JT/lA0bw4GJCzZ+esa0f8rjHhPiW6NnUr64Kf5h0fPEthQhYGTjjw3jAd/3EE28hGA30+jODxEK7A0+5aeI82fWa/ZZk9FvyIhf+UkkX1B0klYhCRW5r91smJ+rwYrr2B6jOrw0DReHTAZ51NACSWI7ov2mA" "UIh2l8blA8hFFBOBwxlzC+smRsYlZCKZfsSMkyS/XIm2m58QNfw/aCHp5VufSrf/hh7f6AGKTgxHfgs+8RBbYdHEM2LAMT+WYsITC3R0OYfgplzWna6PRB9lx+FFzTtT/8XClYfUJ6rwWwM4koeX0yt9gDr/03QIDAQAB"
    

    请注意,邮件服务器的 FQDN 是aporia.cognitivedissonance.ca,所以我aporia出于缺乏想象力将其用作 DKIM 选择器。电子邮件域只是cognitivedissonance.ca. 我应该改用 FQDN(即。aporia._domainkey.aporia.cognitivedissonance.ca)吗?

  • DMARC:

      _dmarc.cognitivedissonance.ca. 3600 IN  TXT     "v=DMARC1;p=reject;pct=100;rua=mailto:dmarc@cognitivedissonance.ca,mailto:8f3ae747@inbox.ondmarc.com;ruf=mailto:8f3ae747@inbox.ondmarc.com,mailto:dmarc@cognitivedissonance.ca; "
    

    我注册的 dmarc 验证服务有一些额外的 mailto。不幸的是,他们不直接测试 DKIM 签名。

最后,一个签名的例子:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=cognitivedissonance.ca; i=@cognitivedissonance.ca; q=dns/txt;
 s=aporia; t=1650468130; h=from;
 bh=3N81YR+AxHZqpkdMAh4Jti6JpRmUrlzO5bUjUoWdGeg=;
 b=kNzUid2LG8TfHoegur3JzlcktiJT+5A1E2en+IlV/GgDMZWL0Ft/4kE02LGFzb2kTMkav
 c9jLUqd2+NCrLDzVRBxgwif++vDwoljCI1X0wvbcCqhfA3uElcCuhCAtBkl/ZNqLR0H1Gjq
 XXA801KqyVrvottuv0+PmEOvqQ8skTpBvl4Da8JjQ73Zscm3/5Mfk0dGTLlggNgapszsP9z
 nt/1Oi6gzLasX933wIdLZWVex8QNfKr8+MTx6bmpVodaeklR+281u8k1zhCBu5pWrzlavUh
 CbWjUm4j3YbeztpG98r9MZOVKbJZyHaiHWcRa1vEq3Cz8AEnRyRkQhd5WtvA==
email dkim dmarc
  • 1 个回答
  • 99 Views
Martin Hope
Rohan
Asked: 2022-04-06 22:24:00 +0800 CST

对于 AWS SES 中的电子邮件身份,如何将“via amazonses.com”替换为我的应用程序品牌“via example.com”?

  • 1

因此,在 SES 中 - 如我所见,有两种方法可以验证身份:

  1. 电子邮件身份
  2. 域身份

使用域身份 - 更容易修复外发邮件中的“签名者”和“邮寄者”标题。如果 DKIM/SPF DNS 记录设置正确 - 它运行良好。

但是对于电子邮件身份 - AWS SES 添加了类似“通过 amazonses.com”的内容。现在我希望用我的应用程序的品牌来解决这个问题。因此,当我的客户只想验证电子邮件身份而不是整个域时 - 他们可以通过我的应用程序(以及通过 SES 在幕后)发送电子邮件,但是当电子邮件发出时 - 而不是说“通过 amazonses.com”,它应该将我的应用程序设置为“通过 example.com”,而不是电子邮件身份。

我怎样才能做到这一点?:)

编辑:

  1. 有人验证电子邮件身份 - foobar@gmail.com - 我希望它说“通过 mydomain.com”而不是“通过 amazonses.com”
  2. 有人验证 clientdomain.com - 我希望它说“签名者:clientdomain.com”,并且“via ....”将被删除

2 号很简单,我可以在 SES 中使用 EasyDKIM 实现这一点,但我无法弄清楚如何实现 1 号

smtp spf dkim amazon-web-services amazon-ses
  • 1 个回答
  • 177 Views
Martin Hope
Dom
Asked: 2022-03-18 06:08:22 +0800 CST

DKIM 签名不匹配比根本不签名 DKIM 更糟糕吗?

  • 2

如果我使用在 DNS 中没有相应公钥的私钥签署邮件,这是否比根本不签署邮件更糟糕(为了可传递性)?

我知道将取决于接收邮件服务器,它可以执行它喜欢的任何规则,但我希望有关于此的一般指导。

我问的原因是我将控制一些邮件的签名,但我不能确定负责更新 DNS 记录的人是否/何时会完成他们的工作。如果我只是设置我的结束,签名,如果他们很久没有解决添加 DNS 记录,这是一个大问题吗?

dkim
  • 1 个回答
  • 299 Views
Martin Hope
Rohan
Asked: 2022-03-11 20:54:45 +0800 CST

如何使用中间域为 DKIM 和 SPF 设置 DNS 设置?

  • 3

我正在开发一种帮助用户发送电子邮件的工具。我计划在后端使用 MTA(邮件传输代理),如 AWS-SES 或 Sendgrid 等。为了使电子邮件成功到达 recipeints 收件箱,用户必须通过配置 DNS 来设置 DKIM/SPF各自域的设置。

现在,如果我以 SES 为例,我知道他们有一个 API,允许我添加一个“身份”并使用该 API 取回所有必要的 DNS 记录。我确信 Sendgrid 和其他 MTA 具有类似的 API,允许添加身份并返回 DNS 记录供用户应用。

我向用户显示返回的 DKIM DNS 设置,他们将其添加到他们的 DNS 提供商,然后当他们发送电子邮件时,recipints 会正确获取它(标题中没有任何“通过 amazonses.com”的东西)

现在举个例子——假设我正在构建的工具托管在 chillybilly.xyz 上,并且其中一个使用我的工具的用户有一个名为 frankthetank.xyz 的域,他们想用它来通过我的平台发送电子邮件.

当用户尝试通过我的平台验证他的域时,我将在 AWS SES 中点击上面提到的 API - 并向用户显示如下内容:

在此处输入图像描述

之后,他们可以为成功的 DKIM/SPF 添加这些 CNAMES 和 TXT 记录,并可以开始发送电子邮件。但是如果你仔细观察,他们可以看到我使用的是 SES,因为这些 CNAMES 和 TXT 记录的值。这是我想要避免的事情,相反,我想要那些被称为类似的东西7nuk24xywyawocu6ctqjxmjasiaiq3vq.dkim.chillybilly.xyz来显示我的品牌,但在后台它仍然会指向正确的 SES。

现在我知道,这样的事情是可能的,因为当我注册 ConvertKit 时,他们向我展示了如下内容:

在此处输入图像描述

如您所见,这两个值指向 converkit.com 但是当我通过 DNS 查找运行它们时:

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.dm-5mk8zo6m.sg7.convertkit.com.&rtype=ALL&dns=google

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我可以看到它在后台指向属于 Sendgrid 的 MX 和 TXT 记录。我怎样才能做到这一点?(我相信同样的原则也适用于 SES 或任何其他 MTA)


编辑: 我尝试了一些事情 - 我在 chillybilly.xyz (我的项目的域)中设置了 CNAME、MX 和 TXT,并从 frankthetank.xyz 指向了两个 CNAMES 调用spf.frankthetank.xyz和dkim.frankthetankxyz

https://dnschecker.org/all-dns-records-of-domain.php?query=spf.frankthetank.xyz&rtype=ALL&dns=google

在此处输入图像描述 在此处输入图像描述

https://dnschecker.org/all-dns-records-of-domain.php?query=dkim.frankthetank.xyz&rtype=ALL&dns=google

在此处输入图像描述

如您所见,我能够获得与 ConvertKit 使用 Sendgrid 所做的非常相似的结果。但它并没有以这种方式得到验证。:(

当我检查这些 DNS 查找(上面的链接)时,我看到的唯一区别是 CNAME 也出现在我的查找中,但在 convertkit 的情况下却没有。所以我认为我接近解决方案,但不确定我缺少什么,有什么想法吗?:)

domain-name-system spf dkim amazon-web-services sendgrid
  • 3 个回答
  • 374 Views
Martin Hope
arno77
Asked: 2022-03-04 09:13:39 +0800 CST

OpenDKIM - 无法加载密钥

  • -1

嗨,我正在尝试设置 OpenDKIM,但它一直抱怨它无法访问密钥文件。我仔细检查了权限和所有权,设置为用户 opendkim 和组 opendkim 并具有 rw 访问权限。我已禁用 selinux 以排除 selinux 问题。我已经多次重新安装了该软件包。不知道在哪里看!有任何想法吗?

错误消息:''' opendkim [691895]:无法从 /etc/opendkim/keys/schots.xyz/20200308.private 加载密钥:权限被拒绝'''

输出ps -l:

[root@anakin schots.xyz]# ps -l 471283
F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY        TIME CMD
1 S   981  471283       1  0  80   0 - 47289 poll_s ?          0:00 /usr/sbin/opendkim -x /etc/opendkim.conf -P /run/opendkim/opendkim.pid

输出 ls -ld /etc/opendkim:

[root@anakin schots.xyz]# ls -ld /etc/opendkim
drwxr-xr-x. 3 root opendkim 154 Mar  4 15:28 /etc/opendkim

输出 ls -ld /etc/opendkim/keys:

[root@anakin schots.xyz]# ls -ld /etc/opendkim/keys
drw-------. 3 opendkim opendkim 68 Mar  4 15:28 /etc/opendkim/keys

输出 ls -ld /etc/opendkim/keys/schots.xyz:

[root@anakin schots.xyz]# ls -ld /etc/opendkim/keys/schots.xyz
drw-------. 2 opendkim opendkim 50 Mar  4 15:10 /etc/opendkim/keys/schots.xyz

输出 ls -ld /etc/opendkim/keys/schots.xyz/20200308.private:

[root@anakin schots.xyz]# ls -ld /etc/opendkim/keys/schots.xyz/20200308.private
-rw-------. 1 opendkim opendkim 1679 Mar  4 15:10 /etc/opendkim/keys/schots.xyz/20200308.private
linux dkim
  • 1 个回答
  • 224 Views
Martin Hope
blindsnowmobile
Asked: 2022-01-27 10:17:17 +0800 CST

DKIM:我可以在不破坏现有电子邮件的情况下安全地添加 DomainKey 策略记录吗?

  • 2

我需要设置 DKIM 来验证我们正在使用的电子邮件提供商。在提供者的文档中,他们要求我们添加两条记录,一条选择器记录和一条策略记录,如下所示:

selector._domainkey.mydomain.com TXT "k=rsa; p=mykeyhere"
_domainkey.mydomain.com  TXT "t=y; o=~"

我担心添加这个新策略,因为我们已经在我们的 DNS 区域中设置了很多 DKIM 选择器,没有现有的策略记录(我们使用多个需要代表我们发送电子邮件的第三方提供商)。我想确保我不会通过创建此记录来破坏现有功能。根据我的阅读,每个区域只能有一个策略,因此可以说它是“共享的”。

我对此进行了一些研究,供应商要求的政策t=y; o=~应该是无害的。似乎说某些电子邮件可能已签名,并以相同的方式处理已验证/未验证的电子邮件(参考)。

尽管如此,这仍会影响我们的生产应用程序,我希望能够确信添加它是安全的。我的假设是否正确,即我可以添加此记录而不会导致我们的大量出站电子邮件被标记为垃圾邮件?还是我错过了什么?

smtp dkim
  • 2 个回答
  • 446 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve