Webサイトにおける最も一般的な重大な脆弱性は、クロスサイト・スクリプティング(XSS)です。 これは、攻撃者が悪意のあるスクリプトをページに挿入し、疑うことを知らないユーザーのブラウザで実行させることができます。 XSSは、ページを改ざんしたり、機密情報を取得したり、ユーザーの身元を盗んだりすることができます。 テンプレートシステムは、XSSに対する防御に失敗しています。Latteは、文脈依存のエスケープ機能により、効果的な防御を行うことができる唯一のシステムです。 安全なウェブサイトを望むなら、誰でもLatteを使う。 クイズです:あなたはXSS脆弱性を防御できますか? 出典Acunetix社 Web脆弱性レポート {var $text = "O'Neill"} - をテキストで表示する。<span>テキスト{$text}で</span> - を属性で指定します。<span title
Webスクレイピングとは、WebサイトのHTMLデータを取得し、特定のデータを抽出し、整形することを言います。ウェブに掲載されているデータを1個1個コピペで取得する作業は大変です。このような時にスクレイピングが役に立ちます。 今回は「PHP Simple HTML DOM Parser」というライブラリを使ったスクレイピングの方法を紹介します。 ウェブスクレイピングとは ウェブスクレイピングはwikipediaによると以下のように説明されています。 ウェブスクレイピング ウェブスクレイピング(Webscraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。 ウェブ・クローラー(Web crawler) あるいはウェブ・スパイダー(Web spider)とも呼ばれる。 通常このようなソフトウェアプログラムは低レベルのHTTP(Hypertext Transfe
最近だとPythonでスクレイピングを行うのが、最近のトレンドだと思うけど、あえてPHPで行う! 「PHP スクレイピング」で検索するとだいたい「phpQuery」でする方法が出てくる。 今では全く更新されていないライブラリ(なにより最近のPHPのバージョンでは動作しない)なので、今回は「phpQuery」は使用せず、代わりに「php-html-parser」を使用して実行してみる。 「php-html-parser」を使用してPHPでwebスクレイピング では早速やっていきます。 「php-html-parser」のダウンロード こちらから「php-html-parser」をダウンロードします。 「php-html-parser」のダウンロードはこちら ダウンロードが完了したら、今回使用するファイルは「simple_html_dom.php」のみ。 「simple_html_dom.ph
phpQuery vs php-html-parser この記事で扱う PHP のバージョン php-html-parser をインストール 実際に使ってみる まとめ phpQuery vs php-html-parser 以前、以下の記事を書きました。この記事では phpQuery というライブラリを使いましたが、phpQuery は3年以上更新が止まっており、最新の PHP に対応してないなど問題がありました。 www.utakata.work 別のライブラリを探していたら、 php-html-parser がかなり良かったので紹介します。 github.com この記事で扱う PHP のバージョン 今回、 PHP のバージョンは 8.0 を使っていますが、7.4 とか、7系でも問題なく動くと思います。 $ php -v PHP 8.0.0 (cli) (built: Nov 30 2
本稿では PHP アプリケーションのパッケージ・ライブラリの依存関係を管理するツール「Composer」の概要について解説します。 Composerとは? PHP で WEB アプリケーションを作成する際、PHP の関数だけでコーディングする場合は少ないのではないでしょうか。 たいていの場合は、コーディングを楽にしてくれるフレームワークやライブラリを利用して開発しているはずです。 例えば、ZendFramework や Symfony などのフレームワークを利用したり、PEAR などのライブラリを利用するでしょう。 Composer は、PHP のプロジェクトが必要とするライブラリやパッケージを管理する「ライブラリ依存管理ツール」です。 その PHP プロジェクトで必要なパッケージ(ライブラリ)は何かを列挙すると、それらを自動的にインストールしてくれる機能を持ちます。 Composer が
はちです。社内でそろそろアプリが作りたいなと思い立って色々調査したので備忘録がてら記事を投稿しています。 アプリを作りたいと思った理由 ・作ったこと無いから ・サーバーエンドはPythonとかちょっと触れるようになったし ・そろそろ新しい技術を使ってみたいし ・Webシステム系の言語(Javaとか)はPHPでお腹いっぱいだし ・社内で需要ありそうだけど体制がないから覚えたいっていうのもある 開発環境構築 ・iOSとAndroid、両方対応したいのでFlutterを採用 ・OSはとりあえずWindows10(Ubuntu Desktopでも環境構築◯) ・Android Studio入れると端末エミュレーションが出来るようになる ・慣れたエディタが良いのでVS Codeで作る ・VS CodeにFlutter+Dart用の拡張機能を導入する ・Android SDK、Flutter SDKを
これをPOSTで呼び出す。API側では、渡されたパラメータをサーバのログに吐き出すようにしてあるので、 パラメータが確実に渡ったことをログで確認する。 IPアドレスは、自PCに起動したVirtualBox(仮想サーバ)のアドレスである。 APIのソース 今回はCakePHP3で実装した。id, name を受け取る。 public function flutterPostTestApi() { $id = $this->request->getData('id') ?? null; $name = $this->request->getData('name') ?? null; if (empty($id)) { $this->badRequest('id is empty. This message from API.'); } $response = []; $response['id
Svelte学習帳 PHP REST-API編 概要 SvelteKitでWebアプリケーションを作ります PHPでREST-APIを作ります fetchで通信します データベースに保存したり読み込んだりします はじめに これは、ローカル環境でREST-APIの練習をするサンプルコードです。 SveltKitで作成したWebアプリケーションに表示されているパラメータを、REST-APIでデータベースに保存します。 以前に投稿した記事「続・コードを書いてステータス画面を表示する」の続編になっています。 参考:続・コードを書いてステータス画面を表示する 動作要件 SvelteKitが動作すること PHP ビルトインサーバーが動作すること PHP Composerが動作すること STEP00 準備します ここでは2つのプロジェクトフォルダを作成します。 SvelteKitのプロジェクトを作成する
この記事からわかること M1チップのMacにphpをインストールする方法 Homebrewの使い方 環境変数PATHを通す方法 Intel製CPUのMacには標準装備されていたPHPですが、M1というCPUに変更になってからはデフォルトで入らなくなってしまいました。 今回はMacにPHPをインストールする方法とそのためにインストール必須のHomebrewのインストール方法、使い方、エラーの解決法をまとめていきたいと思います。 MacにPHPをインストールする手順 Macにphpをインストールする手順は2つです。 Homebrewのインストール phpのインストール 今回の目標はターミナルにphp -vと記入して以下のように正常にバージョンが返ってくることを目指します。 $ php -v PHP 8.0.12 (cli) (built: Nov 5 2021 13:03:23) ( NTS
シークレットキー生成用のライブラリを取得する まずワンタイムパスワードのシークレットキーを生成する為のライブラリを GitHubからダウンロードします。 ファイル構成 ダウンロードしたら下記の階層とファイルを準備します。 ├─ init.php ├─ login.php └─ PHPGangsta └─ GoogleAuthenticator.php シークレットキー生成サンプル(init.php) init.phpで、シークレットキーの生成サンプルを作成します。 <?php require_once 'PHPGangsta/GoogleAuthenticator.php'; $ga = new PHPGangsta_GoogleAuthenticator(); $secret = $ga->createSecret(); echo "シークレットキー: <br>"; echo '<inp
以下のようなリストがあって、nameキーがhogeである情報を抽出したい場合。 hogeは1つしかない場合は、array_search()とarray_column()を使えばOK。 $list = array( array('name' => 'hage', 'data' => 'mon'), array('name' => 'hige', 'data' => 'tue'), array('name' => 'huge', 'data' => 'wed'), array('name' => 'hege', 'data' => 'thu'), array('name' => 'hoge', 'data' => 'fri'), ); $key = array_search( 'hoge', array_column( $list, 'name')); var_dump(list[$key])
どうもfujiharaです。本日はファイルを分割してアップロードする方法をご紹介します 背景 ファイルをアップロードするシステムを作るときに容量の要望にアップロードサイズ、アップロード時間の変更で対応するには 大きすぎるサイズだったので分割してアップロードして、結合するという方法にしました。 ファイル構成 以下のようになります。uploadsはアップロード先になりますので作成しておいて下さい。 ├── js │ └── upload.js ├── index.html ├── upload.php └── uploads HTML まずは簡易HTMLです <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Upload</title> </head> <body> <p>input size <sp
まえがき PHPをXAMPP環境で構築してなかったり、composerをインストールできない環境だったりで PHPMailerを手作業でセットアップしないといけない人へ… ぐぐっても近しいものがないし、なんだか手間取ってしまったので まとめておきます。参考程度で…。 ※PHPMailer公式ではcomposerでのインストールが推奨されてます。 【環境】 OS: Windows系 Apache: 2.4.33(Win32) PHP: ver 7.2.5 PHPMailer: PHPMailer-6.0.5 メールの踏台:Gmail PHPMailerのダウンロード 公式より本体をダウンロード。 Zip形式でダウンロードしてください。 PHPMailer公式 PHPMailer本体のインストール 先ほどダウンロードした中身を設置します。 場所は公開フォルダ上ならどこでもいいような気がしますが
PHPMailer の使い方 PHPMailer は SMTP サーバを利用してメールを送信するための PHP のライブラリです。 PHPMailer を使えば MAMP などのローカル環境で外部の SMTP サーバを使ってメールを送信することができます。 また、mb_send_mail() はシンプルなメールを送る場合には問題ありませんが、HTML メールや添付ファイルを使ったメールを送る場合などは PHPMailer を利用すると簡単です。 但し、脆弱性の問題などのため、割と頻繁にライブラリを更新する必要があるなど実際に使用する場合は検討が必要です。 以下で使用している PHPMailer のバージョンは 6.5.1 です(6.4.1以下には脆弱性あり)。 5.2.x とはソースファイルの配置場所や名前空間の宣言などで異なっています(Upgrading from 5.2)。 ※[脆弱性
もし買うなら広角レンズと中望遠レンズのどちらを買おうか悩んでるハルです。 Google Calendar APIをつかって、自分のカレンダーに予定の追加と削除をしたくなりました。そのために、前回はGoogle Calendar APIを設定し下準備を行いました。 ▼前回の記事 今回ついに、PHPで予定の取得と追加をしてみたいと思います。 前回用意したこと APIの有効化 サービスアカウントの作成とそのJSONファイル Google カレンダーで作成したサービスアカウントの権限を設定 では早速、PHP編をやっていきましょう。 Composerでライブラリをインストール Composerを使いGoogle Calendar APIを使うためのライブラリをインストールします。 $ composer require google/apiclient:^2.0 Composerでインストールが完了す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く