http プロトコルを使用してブログ ガーデンのブログ投稿にコメントを公開します
このブログ投稿では、「php はソケットを使用して GET リクエストと POST リクエストを送信する」ことを前提としています。送信方法を検討するには、上でカプセル化された Http クラスを使用する必要があります。 php スクリプトを通じてブログ ガーデンのブログ投稿にコメントします。
原則:
これを行う前に、まずブログにコメントを送信する方法を理解する必要があります。 post 本質は、http プロトコル サーバー経由で post リクエストを送信することです。コメントを投稿する前に何をする必要がありますか?はい、ログインする必要があります。ただし、ログインについては別の問題なので、ここでは説明しません。ユーザーがログインすると、サーバーはクライアントに Cookie を設定します。 http はステートレスです。つまり、クライアントがサーバーにリクエストを送信した後、サーバーは応答を返します。 1回の通信が完了します。サーバーは、誰がリクエストを送信したかを覚えていません。したがって、クライアントは、サーバーによって設定された Cookie を使用してサーバーにリクエストを送信し、サーバーにその ID を通知する必要があり、サーバーは Cookie に基づいて応答を生成します。原理は非常にシンプルなので、実践的な部分を見てみましょう。
準備作業:
このテストを完了するために、ブログにログインした後、別のブログ パーク アカウント (DeanHuangChopper) を登録しました。 Park を開いて、私のブログ (DeanChopper) を開き、記事「PHP OB 関数を組み合わせたバッファリング メカニズムを理解する」などのブログ投稿を開きます (私は Firefox を使用しています。最大の利点は、どのようなパラメーターが送信されるかを直感的に確認できることです) )、開発者向けオプションを開き、コメントの送信プロセスを記録する準備をします。コメントを書いてコメントを残すだけです。今回は、リクエストは開発者向けオプションを介してログに記録されます。
リクエストヘッダーにのみ注意する必要があります。
当然のことながら、Http クラスの setHeader() メソッドを通じてリクエスト ヘッダー情報を設定し、post() メソッドを通じて送信します。まずはリクエストヘッダー情報を注意深く分析してみましょう。 Host、Content-type、Content-length は一部の http メソッドを通じてデフォルトで設定されるため、追加する必要はありません。ただし、Content-typeのタイプは「application/json; charset=UTF-8」となっており、HTTPのデフォルト設定の「application/x-www-form-urlencoded」とは異なりますので注意が必要です。リクエストボディは配列形式ではなく json 形式であるため、元の Http post メソッドを書き直す必要があります。
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> post(<span style="color: #800080;">$body</span><span style="color: #000000;">) { </span><span style="color: #800080;">$this</span>->setLine('POST'<span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 重新设置content-type</span> <span style="color: #800080;">$this</span>->setHeader('Content-Type:application/json; charset=UTF-8'<span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 跳过setBody方法 // $this->setBody($body);</span> <span style="color: #800080;">$this</span>->body[]=<span style="color: #800080;">$body</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;"> 计算content-length</span> <span style="color: #800080;">$this</span>->setHeader('Content-length: ' . <span style="color: #008080;">strlen</span>(<span style="color: #800080;">$this</span>->body[0<span style="color: #000000;">])); </span><span style="color: #800080;">$this</span>-><span style="color: #000000;">request(); </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">response; }</span>
Http クラスを再変更すると、この記事のメイン コードの作成が完了します。理論的には、ヘッダー情報を設定するときに Cookie 値を設定するだけで済みますが、成功率を高めるには、すべてのヘッダー情報を送信することが最善です。
コメントを送信する前に、送信パラメーターを確認してください:
「本文」の後に送信したいコンテンツを入力するだけです。 。
コード部分:
最後にこの記事のメインコードです:
<span style="color: #000000;">php </span><span style="color: #0000ff;">require</span> "http.class.php"<span style="color: #000000;">;</span><span style="color: #800080;">$http</span>=<span style="color: #0000ff;">new</span> Http('http://www.cnblogs.com/mvc/PostComment/Add.aspx'<span style="color: #000000;">);</span>//设置头信息<span style="color: #800080;">$http</span>->setHeader('Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'<span style="color: #000000;">);</span><span style="color: #800080;">$http</span>->setHeader('Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3'<span style="color: #000000;">);</span><span style="color: #800080;">$http</span>->setHeader('Accept-Encoding:gzip, deflate'<span style="color: #000000;">);</span><span style="color: #800080;">$http</span>->setHeader('X-Requested-With:XMLHttpRequest'<span style="color: #000000;">);</span><span style="color: #800080;">$http</span>->setHeader('Referer:http://www.cnblogs.com/DeanChopper/p/4688667.html'<span style="color: #000000;">);</span><span style="color: #800080;">$http</span>->setHeader('Cookie:_ga=GA1.2.1359064105.1438444082; __gads=ID=e0c32fd6db6e2a6d:T=1438443900:S=ALNI_Mb6AAflcBD6gcdHgeE3IqVDJYnnjA; .CNBlogsCookie=C8013C91E54C151DEDA30E2C1E842982338C9054A8BB8639AC2DAB7578445BF1DF5BC49D39D8BE5FDAC33541CE4E4FA386CFD3F946EA1D79D1E34809A4CCBD7488A15641AEF685A6258CF3F03597BCAF50049F8C95A310076677598990FB2E4FB1E9671A; _5t_trace_sid=84a9ed0b086c2c127551cf911bec7b1d; _5t_trace_tms=1; _gat=1'<span style="color: #000000;">);</span><span style="color: #800080;">$http</span>->setHeader('Pragma:no-cache'<span style="color: #000000;">);</span><span style="color: #800080;">$http</span>->setHeader('Cache-Control:no-cache'<span style="color: #000000;">);<br>//设置请求体信息<br></span><span style="color: #800080;">$msg</span>='{"blogApp":"DeanChopper","postId":4688667,"body":"测试内容","parentCommentId":0}'<span style="color: #000000;">;<br>//发送post请求<br></span><span style="color: #800080;">$http</span>->post(<span style="color: #800080;">$msg</span><span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> 'OK';
送信プロセスは少し時間がかかる可能性があります。しばらくお待ちください。
最後に、ブロガーがこのブログ投稿をコメント送信のテストとして使用するのは構いませんが、文言には注意してください。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

セッションIDは、機密操作の前、30分ごとにログイン時に定期的に再生する必要があります。 1.セッション固定攻撃を防ぐためにログインするときにセッションIDを再生します。 2。安全性を向上させるために、敏感な操作の前に再生します。 3.定期的な再生は長期的な利用リスクを減らしますが、ユーザーエクスペリエンスの重量を量る必要があります。

PHPのセッションCookieパラメーターの設定は、session_set_cookie_params()関数を通じて達成できます。 1)この関数を使用して、有効期限、パス、ドメイン名、セキュリティフラグなどのパラメーターを設定します。 2)session_start()を呼び出して、パラメーターを有効にします。 3)ユーザーログインステータスなど、ニーズに応じてパラメーターを動的に調整します。 4)セキュリティを改善するために、セキュアとhttponlyフラグを設定することに注意してください。

PHPでセッションを使用する主な目的は、異なるページ間でユーザーのステータスを維持することです。 1)セッションはsession_start()関数を介して開始され、一意のセッションIDを作成し、ユーザーCookieに保存します。 2)セッションデータはサーバーに保存され、ログインステータスやショッピングカートのコンテンツなど、さまざまなリクエスト間でデータを渡すことができます。

サブドメイン間でセッションを共有する方法は?一般的なドメイン名にセッションCookieを設定することにより実装されます。 1.セッションCookieのドメインをサーバー側の.example.comに設定します。 2。メモリ、データベース、分散キャッシュなど、適切なセッションストレージ方法を選択します。 3. Cookieを介してセッションIDを渡すと、サーバーはIDに基づいてセッションデータを取得および更新します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
