搜尋
首頁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
每周平台新聞:Galaxy Store的Web應用程序,Tappable Stories,CSS Subgrid每周平台新聞:Galaxy Store的Web應用程序,Tappable Stories,CSS SubgridApr 14, 2025 am 11:20 AM

在本週的綜述中:Firefox獲得了類似鎖匠的力量,三星的Galaxy Store開始支持Progressive Web Apps,CSS Subgrid正在Firefox發貨

每周平台新聞:Internet Explorer模式,搜索控制台中的速度報告,限制通知提示每周平台新聞:Internet Explorer模式,搜索控制台中的速度報告,限制通知提示Apr 14, 2025 am 11:15 AM

在本週的綜述中:Internet Explorer進入Edge,Google搜索控制台吹捧新的速度報告,而Firefox給出了Facebook&#039; s Notification

CSS自定義屬性的範圍的功率(和樂趣)CSS自定義屬性的範圍的功率(和樂趣)Apr 14, 2025 am 11:11 AM

您可能至少已經對CSS變量有點熟悉了。如果沒有,這是兩秒鐘的概述:它們真的稱為自定義屬性

我們是程序員我們是程序員Apr 14, 2025 am 11:04 AM

構建網站正在編程。編寫HTML和CSS正在編程。我是程序員,如果您在這裡閱讀CSS-Tricks,那麼您很有可能是您

您如何從網站上刪除未使用的CSS?您如何從網站上刪除未使用的CSS?Apr 14, 2025 am 10:59 AM

在這裡,我想預先知道的是:這是一個很難的問題。如果您降落在這裡,因為您希望指向您可以運行的工具

圖片中的圖片網絡API簡介圖片中的圖片網絡API簡介Apr 14, 2025 am 10:57 AM

圖片中的圖片在2016年發行了Macos Sierra,在Safari瀏覽器中首次出現在網絡上。這使用戶可以彈出

使用Gatsby組織和準備圖像以使圖像模糊效果的方法使用Gatsby組織和準備圖像以使圖像模糊效果的方法Apr 14, 2025 am 10:56 AM

蓋茨比(Gatsby)進行了出色的處理和處理圖像。例如,它可以幫助您節省圖像優化的時間,因為您不必手動

哦,嘿,填充百分比基於父元素的寬度哦,嘿,填充百分比基於父元素的寬度Apr 14, 2025 am 10:55 AM

今天,我學到了一些有關基於百分比的(%)填充的知識,我腦海中完全錯了!我一直認為百分比填充是基於

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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中