搜索
首页web前端css教程跳入NextJS(或不)进入网络攻击

跳入NextJS(或不)进入网络攻击

Webmention是2017年1月12日上次更新的W3C建议,是一种简单的机制,用于在另一个网站上提到URL通知URL。相反,它允许网站在其他地方提及时接收通知。从本质上讲,它将您的网站转换为活跃的社交媒体中心,从而促进了来自各种平台(Twitter,Instagram,Mastodon等)的沟通。

实施网络攻击各不相同; WordPress用户可以轻松安装插件,而其他用户可能需要更多的手动配置。让我们探讨这个过程。

实施计划

  1. 建立网络登录端点。
  2. 将社交媒体互动转换为网络企业。
  3. 集成到您的网站/应用程序中。
  4. 配置出站网络攻击。

幸运的是,一些服务简化了此过程。第三步需要更多的努力,但我将详细介绍我在atila.io上的方法。

我的NextJS基于服务器端渲染博客使用客户端网络媒体请求,易于适应其他React Apps和JavaScript应用程序。

步骤1:定义Webmention端点

要接收Webmentions,您可以创建自定义脚本或使用Webmention.io(我选择的方法)之类的服务。

Webmention.io是免费的;您只需要验证域名。我使用了一个将我的网站链接到社交媒体资料的rel="me"属性。一个链接就足够了,但我包括了所有帐户。

 <a href="https://www.php.cn/link/069802d489a7b73dd31fd13b0f2cd690" rel="me noopener noreferrer" target="_blank">
  @atilafassina
</a>

这需要从我的Twitter个人资料回到我的网站的相互链接。在WebMention.io上进行验证后,添加您的网站URL。这提供了您的网络登录端点。包括这些<link>网页中的标签收集提及:

<link href="https://webmention.io/%7Buser%7D/webmention" rel="webmention">
<link href="https://webmention.io/%7Buser%7D/xmlrpc" rel="pingback">

用您的webmention.io用户名替换{user}

步骤2:处理社交媒体互动

尽管已准备好网络攻击,但它们的用法是有限的。转换社交媒体互动至关重要。 Bridgy,一项免费服务,将联合内容连接并将其转换为网站。使用SSO,连接您的各种配置文件。

步骤3:在您的网站上显示网络攻击

此步骤涉及检索和显示Webmention数据。我们将其分为几个阶段:计数提及,获取提及并与NextJS(可选)集成。

计算网络攻击

Webmention.io API提供了一系列提及。响应的结构如下:

 type tmentionscountresponse = {
  计数:数字;
  类型: {
    喜欢:数字;
    提及:数字;
    回复:号码;
    重新发布:数字;
  };
};

这被处理为:

 type tmentionscount = {
  提及:数字;
  喜欢:数字;
  总数:数字;
};

终点是: https://webmention.io/api/count.json?target=${post_url} 。 MaxBöck和Swyx结合了喜欢和回复的重新提及。

 const getmentionscount = async(posturl:string):承诺<tmentionscount> => {
  const resp =等待fetch(`https://webmention.io/api/count.json?target=jundejumport=junteqution {posturl}/`);
  const {type,count} =等待desp.json();

  返回 {
    喜欢:类型。
    提及:type.mention类型。
    总计:计数,
  };
};</tmentionscount>

获取网站

https://webmention.io/api/mentions endpoint被分页,接受pageper-pagetarget参数。成功的响应包括一系列links

 type tmention = {
  来源:字符串;
  经过验证:布尔值;
  verified_date:string;
  id:数字;
  私人:布尔人;
  数据: {
    作者: {
      名称:字符串;
      URL:string;
      照片:字符串;
    };
    URL:string;
    名称:字符串;
    内容:字符串;
    出版:字符串;
    发布_TS:编号;
  };
  活动: {
    类型:'link'| '回复'| 'repost'| '喜欢';
    句子:字符串;
    stone_html:字符串;
  };
  目标:字符串;
};

提取请求:

 const getmentions = async(
  页面:字符串,
  后续页:编号,
  Posturl:字符串
):Promise  => {
  const resp =等待提取(
    `https://webmention.io/api/mentions?
  );
  const list =等待resp.json();
  返回list.links;
};

NextJS集成(可选)

NextJS提供getStaticPropsgetStaticPathsgetServerSideProps的数据获取。我选择了使用SWR进行缓存和州管理的客户端方法。

显示网络计数

一个MentionsCounter组件显示了计数:

 // ...(导入语句和类型)...

const incenionscounter =({posturl})=> {
  const {t} = usetranslation();
  const {data = {},error} = usewr(posturl,getmentionscount);

  如果(错误){
    返回<errormessage>{t('common:errorwebmentions')}}</errormessage> ;
  }

  const {likes =' - ',提及=' - '} = data;

  返回 (
    <mentioncounter>
      <li>
        <heart title="喜欢"></heart>
        <counterdata>{number.isnan(喜欢)? 0:喜欢}</counterdata>
      </li>
      <li>
        <comment title="提及"></comment>
        <counterdata>{number.isnan(提及)? 0:提及}</counterdata>
      </li>
    </mentioncounter>
  );
};

显示提及

Webmentions组件显示了实际提及,使用状态进行分页和useEffect来获取:

 // ...(导入语句和类型)...

const webmentions =({posturl})=> {
  const {t} = usetranslation();
  const [page,setPage] = usestate(0);
  const [提及,添加剂] = usestate([]);

  useeffect(()=> {
    const fetchmentions = async()=> {
      const旧=等待getmentions(Page,50,Posturl);
      添加((提及)=> [...提及,...较旧的]);
    };
    提取();
  }, [页]);

  返回 (
    
      {tedi firits.map(((提及,index)=>((
        <mention key="{mention.data.author.name}">
          <authoravatar lazy src="%7Bmention.data.author.photo%7D"></authoravatar>
          <mentioncontent>
            <mentiontext activity="{mention.activity.type}" data="{mention.data}"></mentiontext>
          </mentioncontent>
        </mention>
      )}}
      {提及。长度> 0 &&((
        <morebutton onclick="{()"> setPage(第1页)} type =“ button”>
          {t('common:more')}}
        </morebutton>
      )
    >
  );
};

步骤4:处理出站提及

WebMention.App具有API令牌和Webhook,简化了出站的提及。另外,雷米·夏普(Remy Sharp)的wm CLI软件包可以用作后构建脚本。微型模式(H-访问和H卡)对于更丰富的出站提及至关重要。

结论

本指南提供了对网络实施的全面概述。如果有帮助,请记住分享这篇文章!

参考

  • 在静态站点上使用Web提及(MaxBöck)
  • 客户端网站(SWYX)
  • 发送传出网站(Remy Sharp)
  • 您的第一个网站(Aaron Parecki)

进一步阅读

  • Webmention W3C规范(建议)
  • Webmention.io
  • WebMention.App
  • 出站网络委员会CLI
  • 天哪
  • microformats.org
  • indieweb

以上是跳入NextJS(或不)进入网络攻击的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在保留边框半径的同时,扩展盒子的各种方法在保留边框半径的同时,扩展盒子的各种方法Apr 17, 2025 am 11:19 AM

我最近注意到Codepen的一个有趣的更改:在悬停在主页上的笔时,有一个矩形,圆角在后面扩展。

每周平台新闻:改进慢速连接上的UX,用于编写ALT文本的提示和HTML加载属性的多填充每周平台新闻:改进慢速连接上的UX,用于编写ALT文本的提示和HTML加载属性的多填充Apr 17, 2025 am 11:09 AM

在本周的综述中,如何确定慢速连接,我们应该在图像中放入alt文本中的内容以及用于HTML加载属性的新polyfill,

可重复使用的弹出式添加一点流行音乐可重复使用的弹出式添加一点流行音乐Apr 17, 2025 am 11:02 AM

弹出窗口是一种瞬态视图,当用户单击控制按钮或定义区域内时,屏幕上的内容顶部显示在屏幕上。例如,

带有真实下划线的造型链接带有真实下划线的造型链接Apr 17, 2025 am 10:57 AM

在进入如何样式下划线之前,我们应该回答以下问题:我们应该强调吗?

每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow domApr 17, 2025 am 10:55 AM

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

带有GraphQL的多人游戏TIC TAC TOE带有GraphQL的多人游戏TIC TAC TOEApr 17, 2025 am 10:54 AM

GraphQL是API的查询语言,对前端开发人员非常有能力。正如GraphQL网站所解释的那样,您可以描述您的数据,询问什么

使用CSS变量的逻辑操作使用CSS变量的逻辑操作Apr 17, 2025 am 10:44 AM

通常,在使用开关变量(一个0或1的变量时,这是本文中更详细地解释的概念),我希望我可以

懒负载嵌入YouTube视频懒负载嵌入YouTube视频Apr 17, 2025 am 10:40 AM

通过亚瑟·科伦赞(Arthur Corenzan),这是一个非常聪明的主意。与其使用默认的YouTube嵌入,该YouTube嵌入了,这会在用户播放的情况下在页面上添加大量资源

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中