複数のレイヤーや開発者が相互に通信する大規模なシステム(エンタープライズアプリケーション、共有ソフトウェアパッケージ、ライブラリなど)を開発する場合、新しいコードのバージョンをどのように扱うかという問題が発生する。 開発者のコミュニティのために、共有のComposerパッケージを開発したいという状況を例にとって見てみましょう。 セマンティックバージョニング 後方互換性と前方互換性の問題を解決する前に、ソフトウェアの変更点をどのように把握するかを考える必要があります。現在(2022年)、すべての変…
知識や経験の豊富なプロジェクトオーナーとコンサルティングをしていると、デジタルプロジェクトの長期的な持続可能性についての問題によく出くわします。多くの大規模プロジェクトは、開発期間が3年を超えると、内部的に陳腐化し、持続不可能になります。ここで、さまざまなレベルの知識、経験、そして最も重要な勤勉さを持つ開発者のチームを想像してみてください。 デジタルプロジェクトを技術的にTOPレベルに維持するために、必要なこと。 有能な開発者とプロジェクトマネージャー**は、素晴らしいコミュニケーションをとり、…
Webアプリケーションの開発を始めてしばらく経つと、多くのことが日常的に繰り返されるようになっていることに気づくでしょう。技術的なプロジェクト管理、ファイルのバージョン管理、自動コードレビュー、さまざまなデータ処理、あるいはサーバーへのデプロイやセキュリティ関連など、非常に多くのことが行われています。 企業でコンサルティングをしていると、予防が非常に軽視されているという問題にぶつかることが非常に多いのです。その理由は、開発者があることを非常に困難なことだと認識し、それが自分たちの仕事を増やすこと…
PHPでは、基本的なレベルでIPアドレスを検出することは非常に簡単です。 echo 'あのね、あなたのIPアドレスは' . $_SERVER['REMOTE_ADDR'] . '?'; Warning: $_SERVER['REMOTE_ADDR'] フィールドのキーとしてIPアドレスを取得することは、PHPがブラウザから呼び出された場合のみ可能です。CLIモード(例えば、ターミナルからcronで実行)では、IPアドレスは利用できません(ネットワーク要求が行われないので、これは理にかなっています…
Webアプリケーションの開発に真剣に取り組み、そのサイトが後にインターネット上で公開されるのであれば、セキュリティへの対策は非常に重要です。 現実的には、次のような脅威が開発者を待ち受けています。 アプリケーションに内部エラーがある、例えば、プログラマーがコードを書くときに気づかなかったミスをしたため、または "時々 "しか現れないため。 サーバーの設定に誤りがあるか、サーバー管理者がサーバーの動作を変更し、サイトがそれに適応していなかったために環境が変化した**のです。あるいは、新しいマシンに…
ハッシュ化処理では(暗号化とは対照的に)入力から元の文字列がもはや導き出せないような出力を生成する。 そのため、機密性の高い文字列やパスワード、チェックサムの保護に適しています。 ハッシュ関数のもう一つの良い点は、常に同じ長さの出力を生成し、入力が少し変わると常に出力全体が完全に変化することである。 ハッシュ関数 PHP には多くのハッシュ関数がありますが、重要なものは以下のとおりです。 Bcrypt: password_hash() - 最も安全なパスワードハッシュ、計算が遅い、内部のソルトを…
注意: この記事は何年も前に書かれたもので、情報が古かったり間違っていたりすることがあります。このことを念頭に置いてお読みください。 シーザー暗号は、最も簡単なハッシュ関数の一つである。当時はほとんど壊れなかったが、現代のコンピュータの時代には、数十秒、数分もあれば壊せる。これは鍵に基づいており、それに従ってメッセージが暗号化され、再び展開することができます。そのため、鍵は秘密です。暗号化された時点で、メッセージは見ることができ、何の意味もない(ただ文字がごちゃごちゃしている)ことになる。暗号を…
MD5は、ハッシュを計算する関数として非常によく使われています。 初心者はパスワードのハッシュ化に使うことが多いのですが、これは元のパスワードを取り出す方法がたくさんあるため、あまり良い方法とは言えません。 そのための具体的な方法について解説します。 時間の複雑さ すべてのセキュリティは、すべてのパスワードを試すのに不釣り合いなほど長い時間がかかるという事実の上に成り立っているのです。まあ、そうでしょうね。特に md5() アルゴリズムの問題は、この関数が非常に高速であることです。通常のコンピュ…
ディスクに保存してあるファイルをページに添付することはよくあります。もし、その正確な名前を直接アタッチ関数に入力すれば、何も心配することはない。 ファイルの安全な添付 include 'menu.html'; 前回の書き込みは、いつも同じファイルをマウントしているので、全く問題ありません。この場合、セキュリティエラーは起こりえません。唯一起こりうる問題は、menu.htmlファイルがない場合、警告メッセージが表示されますが(どうせ表示されないでしょう)、通常、存在がほぼ確実なファイルを添付するの…
PHP4、PHP5対応 addcslashes - C スタイルのスラッシュ文字列 商品説明 string addcslashes (string $str, string $charlist) charlist パラメータで指定された文字の前にバックスラッシュを付加した文字列を 返す。 パラメータ str テキスト文字列 charlist の文字が削除されます。charlistに n, `rr などの文字が含まれている場合は、C-styleに変換される。その他の英数字以外の ASCI 文字で、…