php でクールな検証コードを記述して生成する
<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #800080;">$im</span>=imagecreate(200,100<span style="color: #000000;">);//生成画布</span><span style="color: #008080;"> 3</span> imagecolorallocate(<span style="color: #800080;">$im</span>,0,0,0<span style="color: #000000;">);//背景色</span><span style="color: #008080;"> 4</span> <span style="color: #800080;">$white</span>=imagecolorallocate(<span style="color: #800080;">$im</span>,<span style="color: #008080;">rand</span>(0,255),<span style="color: #008080;">rand</span>(0,255),<span style="color: #008080;">rand</span>(0,255<span style="color: #000000;">));//生成随机颜色</span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span>=0;<span style="color: #800080;">$i</span>$i++<span style="color: #000000;">)</span><span style="color: #008080;"> 6</span> <span style="color: #000000;">{</span><span style="color: #008080;"> 7</span> imageline(<span style="color: #800080;">$im</span>,<span style="color: #008080;">rand</span>(0,200),<span style="color: #008080;">rand</span>(0,100),<span style="color: #008080;">rand</span>(0,200),<span style="color: #008080;">rand</span>(0,100),<span style="color: #800080;">$white</span><span style="color: #000000;">);//生成干扰线条元素</span><span style="color: #008080;"> 8</span> <span style="color: #000000;">}</span><span style="color: #008080;"> 9</span> <span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span>=0;<span style="color: #800080;">$i</span>$i++<span style="color: #000000;">)</span><span style="color: #008080;">10</span> <span style="color: #000000;">{</span><span style="color: #008080;">11</span> imagesetpixel(<span style="color: #800080;">$im</span>,<span style="color: #008080;">rand</span>(0,200),<span style="color: #008080;">rand</span>(0,100),<span style="color: #800080;">$white</span><span style="color: #000000;">);//生成干扰点元素</span><span style="color: #008080;">12</span> <span style="color: #000000;">}</span><span style="color: #008080;">13</span> <span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span>=0,<span style="color: #800080;">$str</span>='';<span style="color: #800080;">$i</span>$i++<span style="color: #000000;">)//通过循环获得四个字符</span><span style="color: #008080;">14</span> <span style="color: #000000;">{</span><span style="color: #008080;">15</span> <span style="color: #0000ff;">switch</span>(<span style="color: #008080;">rand</span>(1,3<span style="color: #000000;">))</span><span style="color: #008080;">16</span> <span style="color: #000000;"> {</span><span style="color: #008080;">17</span> <span style="color: #0000ff;">case</span>'1':<span style="color: #008080;">18</span> <span style="color: #800080;">$ch</span>=<span style="color: #008080;">rand</span>(0,9<span style="color: #000000;">);</span><span style="color: #008080;">19</span> <span style="color: #0000ff;">break</span><span style="color: #000000;">; </span><span style="color: #008080;">20</span> <span style="color: #0000ff;">case</span>'2':<span style="color: #008080;">21</span> <span style="color: #800080;">$ch</span>=<span style="color: #008080;">sprintf</span>('%c',<span style="color: #008080;">rand</span>(97,122<span style="color: #000000;">));</span><span style="color: #008080;">22</span> <span style="color: #0000ff;">break</span><span style="color: #000000;">;</span><span style="color: #008080;">23</span> <span style="color: #0000ff;">case</span>'3':<span style="color: #008080;">24</span> <span style="color: #800080;">$ch</span>=<span style="color: #008080;">sprintf</span>('%c',<span style="color: #008080;">rand</span>(65,90<span style="color: #000000;">));</span><span style="color: #008080;">25</span> <span style="color: #0000ff;">break</span><span style="color: #000000;">;</span><span style="color: #008080;">26</span> <span style="color: #000000;"> }</span><span style="color: #008080;">27</span> <span style="color: #800080;">$str</span>.=<span style="color: #800080;">$ch</span><span style="color: #000000;">;</span><span style="color: #008080;">28</span> <span style="color: #008080;">29</span> <span style="color: #000000;">}</span><span style="color: #008080;">30</span> imagettftext(<span style="color: #800080;">$im</span>,32,<span style="color: #008080;">rand</span>(0,15),55,70,<span style="color: #800080;">$white</span>,'c.ttc',<span style="color: #800080;">$str</span><span style="color: #000000;">);//在画布上输出字符串</span><span style="color: #008080;">31</span> <span style="color: #008080;">header</span>("Content-type:image/jpeg"<span style="color: #000000;">);</span><span style="color: #008080;">32</span> imagejpeg(<span style="color: #800080;">$im</span><span style="color: #000000;">);</span><span style="color: #008080;">33</span> imagedestroy(<span style="color: #800080;">$im</span><span style="color: #000000;">);</span><span style="color: #008080;">34</span> ?>
- 1FTao Shihan
- 弼

セッション固定攻撃を防ぐための効果的な方法には、次のものがあります。1。ユーザーがログインした後にセッションIDを再生します。 2。安全なセッションID生成アルゴリズムを使用します。 3。セッションタイムアウトメカニズムを実装します。 4。HTTPSを使用したセッションデータを暗号化します。これらの措置は、セッションの固定攻撃に直面するときにアプリケーションが破壊されないようにすることができます。

セッションのない認証の実装は、サーバー側のセッションストレージなしですべての必要な情報がトークンに保存されるトークンベースの認証システムであるJSonWebtokens(JWT)を使用することで実現できます。 1)JWTを使用してトークンを生成および検証する、2)トークンが傍受されるのを防ぐためにHTTPSが使用されることを確認する、3)クライアント側にトークンを安全に保存する、4)改ざんを防ぐためにサーバー側のトークンを検証する、5)短期アクセスや長期的なリフレイを使用するなどのトークンの取り消しメカニズムを実装する。

PHPセッションのセキュリティリスクには、主にセッションハイジャック、セッションの固定、セッション予測、およびセッション中毒が含まれます。 1。HTTPSを使用してCookieを保護することにより、セッションハイジャックを防ぐことができます。 2。ユーザーがログインする前にセッションIDを再生することにより、セッションの固定を回避できます。3。セッションの予測は、セッションIDのランダム性と予測不可能性を確保する必要があります。 4.セッションの中毒は、セッションデータを確認およびフィルタリングすることで防ぐことができます。

PHPセッションを破壊するには、最初にセッションを開始してから、データをクリアしてセッションファイルを破壊する必要があります。 1。Session_start()を使用してセッションを開始します。 2。Session_unset()を使用して、セッションデータをクリアします。 3.最後に、session_destroy()を使用してセッションファイルを破壊して、データのセキュリティとリソースのリリースを確保します。

PHPのデフォルトセッションの保存パスを変更する方法は?次の手順で達成できます。Session_save_path( '/var/www/sessions'); session_start(); PHPスクリプトで、セッション保存パスを設定します。 session.save_path = "/var/www/sessions"をphp.iniファイルに設定して、セッションの保存パスをグローバルに変更します。 memcachedまたはredisを使用して、ini_set( 'session.save_handler'、 'memcached')などのセッションデータを保存します。 ini_set(

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

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

ホットトピック









