HTML5プロフェッショナル認定試験 レベル1「Webの基礎知識(HTTP・HTML書式・関連技術)」の一問一答
📖 HTML5プロフェッショナル認定試験 レベル1「Webの基礎知識(HTTP・HTML書式・関連技術)」の全75問と解説(一覧)
HTML5プロフェッショナル認定試験 レベル1のWebの基礎知識(HTTP・HTML書式・関連技術)に関する一問一答(全75問)の正解と解説の一覧です。上の一問一答で実際に解いてから、ここで復習・確認できます。
-
問1.HTTPのGETメソッドは、サーバーからリソースを取得するために使用される。
正解:○(正しい)
解説:GETはサーバー上のリソースを取得するためのメソッドで、サーバーの状態を変更しない安全なメソッドとされる。何度実行しても結果が変わらない冪等性も持つため、ブラウザが自由に再送したりキャッシュしたりできる。パラメータはURLのクエリ文字列として送られるので、機密情報の送信には向かない。
-
問2.HTTPのHEADメソッドは、レスポンスボディ(本体)を含めてヘッダ情報を取得する。
正解:×(誤り)
解説:誤り。HEADはGETと同じヘッダだけを返し、ボディは含まない。ファイルの更新日時やサイズ、リンク先が生きているかを、本体をダウンロードせずに確認したいときに使う。
-
問3.HTTPのPUTメソッドは、指定したURIにリソースを置き換える(または作成する)際に使用される。
正解:○(正しい)
解説:PUTは指定したURIにリソースを丸ごと置き換える(存在しなければ作成する)メソッド。同じ内容を何度送っても結果が同じになる冪等性を持つ点が、送るたびに新しいリソースが増えうるPOSTとの違い。
-
問4.ステータスコード404は、サーバー内部でエラーが発生したことを示す。
正解:×(誤り)
解説:誤り。正しくは404はリソースが見つからない(Not Found)を示し、サーバー内部エラーは500である。
-
問5.ステータスコード301は、リソースが恒久的に別のURIへ移動したことを示す。
正解:○(正しい)
解説:301 Moved Permanentlyは恒久的な移動を示し、ブラウザや検索エンジンは以後そのURIを新しいものへ置き換えて扱う。一時的な移動を示す302とは異なり、検索評価も引き継がれるため、サイト移転やHTTPS化のリダイレクトでは301を使う。
-
問6.ステータスコード302は、リソースが恒久的に移動したことを示す。
正解:×(誤り)
解説:誤り。正しくは302はFound(一時的な移動)を示し、恒久的な移動は301である。
-
問7.ステータスコード304は、リソースが未更新でありキャッシュが利用可能であることを示す。
正解:○(正しい)
解説:304 Not Modifiedは、条件付きリクエスト(If-Modified-SinceやIf-None-Match)に対して「前回から変わっていない」と答えるもの。ボディを返さないので通信量を大幅に削減でき、クライアントは手元のキャッシュをそのまま使う。
-
問8.ステータスコード500は、クライアントのリクエストが不正であることを示す。
正解:×(誤り)
解説:誤り。正しくは500はサーバー内部エラーを示し、不正なリクエストは400である。
-
問9.ステータスコード403は、サーバーがリクエストを理解したが認可されず処理を拒否したことを示す。
正解:○(正しい)
解説:403 Forbiddenは、サーバーがリクエスト自体は理解したうえで、権限がないため実行を拒否した状態。認証すればアクセスできる可能性がある401 Unauthorizedと違い、認証をやり直しても通らないという点が異なる。
-
問10.ステータスコードの4xx系はサーバー側のエラーを表す。
正解:×(誤り)
解説:誤り。4xxはクライアント側に原因があるエラー(404 Not Found、403 Forbiddenなど)、5xxはサーバー側に原因があるエラー(500 Internal Server Errorなど)。1xxは情報、2xxは成功、3xxはリダイレクトを表す。
-
問11.HTTP/2では、1つのTCP接続上で複数のリクエスト/レスポンスを多重化できる。
正解:○(正しい)
解説:HTTP/1.1では1つの接続で1つのリクエストを順に処理するため、前の応答が遅いと後続が待たされた(Head-of-Line ブロッキング)。HTTP/2はリクエストとレスポンスをストリームに分けて多重化し、1本のTCP接続で並行してやりとりできるようにした。ヘッダ圧縮やサーバープッシュも導入されている。
-
問12.HTTP/1.1はバイナリ形式、HTTP/2はテキスト形式でメッセージをやり取りする。
正解:×(誤り)
解説:誤り。正しくはHTTP/1.1がテキスト形式、HTTP/2がバイナリ形式である。
-
問13.HTTP/1.1ではKeep-Aliveにより1つのTCP接続を継続して使い回すことができる。
正解:○(正しい)
解説:接続のたびにTCPのハンドシェイクをやり直すのは無駄が大きいため、HTTP/1.1では持続的接続(Keep-Alive)が既定になり、1つの接続を複数のリクエストで使い回せる。接続を閉じたい場合はConnection: closeを明示する。
-
問14.HTTPはステートフルなプロトコルであり、各リクエスト間で状態を自動的に保持する。
正解:×(誤り)
解説:誤り。HTTPはステートレスで、各リクエストは独立して扱われ前回の状態を覚えていない。これが実装を単純にし拡張性を高めている一方、ログイン状態などを保つにはcookieやセッションといった仕組みを別途使う必要がある。
-
問15.cookieはサーバーがSet-Cookieヘッダで発行し、クライアントはCookieヘッダで送り返す。
正解:○(正しい)
解説:サーバーはレスポンスのSet-Cookieヘッダで値を渡し、ブラウザはそれを保存して以後同じサイトへのリクエストにCookieヘッダとして自動的に付ける。これによりステートレスなHTTPでもログイン状態などを維持できる。HttpOnly・Secure・SameSite属性で安全性を高められる。
-
問16.Basic認証では、ユーザー名とパスワードが暗号化されて送信される。
正解:×(誤り)
解説:誤り。正しくはBasic認証はBase64でエンコードされるだけで暗号化されない。
-
問17.Digest認証は、パスワードそのものではなくハッシュ化した値を送信するためBasic認証より安全とされる。
正解:○(正しい)
解説:Basic認証はIDとパスワードをBase64で符号化するだけなので、盗聴されれば容易に復元できる。Digest認証はサーバーが渡すnonceとパスワードからハッシュ値を計算して送るため、通信路にパスワードそのものが流れない。ただし現在はHTTPSで通信全体を暗号化するのが基本。
-
問18.HTTPSはSSL/TLSによって通信内容を暗号化するHTTP通信である。
正解:○(正しい)
解説:HTTPS はHTTPをSSL/TLSの上で通信させる方式で、盗聴を防ぐ暗号化、改ざんを検知する完全性の確認、サーバー証明書による接続先の真正性確認の3つを同時に実現する。現在は個人情報を扱わないページも含め常時HTTPS化が標準になっている。
-
問19.HTTPSの標準ポート番号は80である。
正解:×(誤り)
解説:誤り。HTTPSの標準ポートは443で、80はHTTPのポート。URLでポートを省略した場合、スキームに応じて自動的にこの既定値が使われる。
-
問20.Content-Typeヘッダは、送受信するデータのメディアタイプ(MIMEタイプ)を示す。
正解:○(正しい)
解説:Content-Typeはボディがどんな種類のデータかをtext/html、application/json、image/pngのように示すヘッダ。ブラウザはこの値を見て表示方法を決めるため、指定を誤ると意図しない解釈をされる。文字コードはcharsetパラメータで併記する。
-
問21.Authorizationヘッダは、認証情報をサーバーへ送るレスポンスヘッダである。
正解:×(誤り)
解説:誤り。正しくはAuthorizationは認証情報を送るリクエストヘッダである。
-
問22.URIはリソースを識別するための統一的な識別子の総称であり、URLはその一種である。
正解:○(正しい)
解説:URIはリソースを識別するための総称で、その下位概念として「どこにあるか(場所)」で識別するURLと、「何であるか(名前)」で識別するURNがある。日常的にはURLという語が使われるが、仕様上の上位概念はURIである点を押さえる。
-
問23.http://example.com:8080/path?key=value のうち、8080はポート番号を表す。
正解:○(正しい)
解説:URIはスキーム(http)、ホスト(example.com)、ポート(8080)、パス(/path)、クエリ(key=value)などの部品からなる。ホスト名の後のコロンに続く数値がポート番号で、省略時はスキームの既定値(HTTPは80、HTTPSは443)が使われる。
-
問24.HTML5の文字エンコーディング指定は <meta charset="UTF-8"> のように記述する。
正解:○(正しい)
解説:HTML5では従来の長いhttp-equiv形式に代えて<meta charset="UTF-8">と簡潔に書ける。文字コードの指定はできるだけhead要素の先頭付近に置く必要があり、遅れるとブラウザが誤った文字コードで解釈を始めて文字化けの原因になる。
-
問25.html要素のlang属性は、文書の自然言語を指定するために使用される。
正解:○(正しい)
解説:lang属性は文書の自然言語(日本語ならja)を示す。スクリーンリーダーが正しい言語で読み上げる、ブラウザが翻訳を提案する、検索エンジンが言語を判別するといった処理の手がかりになるため、アクセシビリティの観点からも指定が推奨される。
-
問26.文字参照 < は大なり記号(>)を表す。
正解:×(誤り)
解説:誤り。< は小なり記号(<)を表し、大なり記号(>)は > である。lはless(より小さい)、gはgreater(より大きい)の頭文字と覚えるとよい。タグの開始と誤解されないよう、本文中の不等号は文字参照で書く。
-
問27.文字参照 は改行しないスペース(ノーブレークスペース)を表す。
正解:○(正しい)
解説: (non-breaking space)はそこで行が折り返されない空白を表す。「10 kg」のように数値と単位を離したくない場合などに使う。通常の空白と違い連続しても1つにまとめられないため、レイアウト目的での多用は避ける。
-
問28.文字参照 ¥ はアンパサンド(&)を表す。
正解:×(誤り)
解説:誤り。¥ は円記号(¥)を表し、アンパサンド(&)は & である。&は文字参照そのものの開始記号なので、本文中で&を表示したい場合は必ず & と書く必要がある。
-
問29.title要素はbody要素内に記述する。
正解:×(誤り)
解説:誤り。title要素はhead要素内に記述する。文書のタイトルはブラウザのタブや検索結果、ブックマークの名前として使われるメタ情報であり、ページ本文として表示されるコンテンツではないため。
-
問30.link要素は、外部CSSファイルなどの関連リソースを文書に関連付ける際に用いられる。
正解:○(正しい)
解説:link要素は現在の文書と外部リソースとの関係をrel属性で示す。rel="stylesheet"で外部CSSを読み込むほか、rel="icon"でファビコン、rel="canonical"で正規URLを指定するなど用途が広い。終了タグを持たない空要素である。
-
問31.meta要素は終了タグを持つ通常要素である。
正解:×(誤り)
解説:誤り。meta要素は内容を持たない空要素で、終了タグを書かない。同じく空要素にはlink・img・br・hr・inputなどがあり、いずれも属性だけで情報を表す。
-
問32.PNGは可逆圧縮の画像フォーマットであり、画質を劣化させずに圧縮できる。
正解:○(正しい)
解説:PNGは可逆圧縮の画像形式で、圧縮しても画質が劣化しない。透過(アルファチャンネル)にも対応する。
-
問33.JPEGは可逆圧縮であり、保存を繰り返しても画質が劣化しない。
正解:×(誤り)
解説:誤り。JPEGは人間の目に感じにくい情報を捨てて圧縮する非可逆圧縮なので、編集して保存し直すたびに劣化が蓄積する。可逆圧縮で劣化しないのはPNGやGIFのほうである。
-
問34.GIFは最大256色までしか扱えない画像フォーマットである。
正解:○(正しい)
解説:GIFは1ピクセルを8ビットで表すインデックスカラー方式のため、同時に使える色は最大256色。色数が少ないイラストやアイコン、単純なアニメーションには向くが、写真のように階調が豊かな画像には適さない。
-
問35.JPEGは透過(透明)情報を保持できる。
正解:×(誤り)
解説:誤り。JPEGは透過情報を持てない。透過を扱えるのは、1色を透明として指定できるGIFと、アルファチャンネルで滑らかな半透明まで表現できるPNGである。
-
問36.PNGはアルファチャンネルによる半透明表現に対応している。
正解:○(正しい)
解説:PNGは各ピクセルに不透明度を表すアルファチャンネルを持てるため、影やぼかしのように徐々に透ける表現ができる。GIFが1色を完全に透明とするか否かの二択しか扱えないのに対し、境界がなめらかになるのが利点。
-
問37.インタレースは、画像を一度に全体表示してから一部を消す表示方式である。
正解:×(誤り)
解説:誤り。インタレース(PNGではAdam7)は、まず粗い全体像を表示し、読み込みが進むにつれて段階的に鮮明にしていく方式。回線が遅くても全体の雰囲気を早く把握できる利点がある。
-
問38.Ajaxは、ページ全体を再読み込みせずにサーバーと非同期通信を行う技術である。
正解:○(正しい)
解説:AjaxはJavaScriptからXMLHttpRequestやFetch APIでサーバーと非同期に通信し、受け取った結果でページの一部だけを書き換える技術。ページ全体を再読み込みしないので待ち時間が短く、画面のちらつきもない。地図の操作や入力候補の表示が典型例。
-
問39.Data URIスキームを使うと、画像などのデータをHTMLやCSS内に直接埋め込める。
正解:○(正しい)
解説:Data URIは data:image/png;base64,... のようにデータ本体をURIとして直接書く仕組み。小さな画像やアイコンを埋め込めばHTTPリクエストを減らせる一方、Base64化でデータ量が約1.3倍に増え、キャッシュも効きにくくなるため、大きなファイルには向かない。
-
問40.DOMは、HTML文書を木構造として表現しプログラムから操作可能にする仕組みである。
正解:○(正しい)
解説:DOMはHTML文書を要素・属性・テキストをノードとする木構造として表現し、JavaScriptから取得・追加・変更・削除できるようにする仕組み。この木構造があるからこそ、CSSのセレクタで要素を指定したり、スクリプトで動的にページを書き換えたりできる。
-
問41.MVCアーキテクチャのViewは、データベースとのやり取りやビジネスロジックを担当する。
正解:×(誤り)
解説:誤り。Viewが担当するのは表示(ユーザーインタフェース)で、データとビジネスロジックを担うのはModel。Controllerは入力を受け取ってModelとViewを仲介する。責務を分けることで、見た目の変更がロジックに影響しないようにするのが狙い。
-
問42.カスタムデータ属性は data-* の形式で記述し、任意のデータをHTML要素に持たせられる。
正解:○(正しい)
解説:data-price="1000" のように data- で始まる任意の属性を定義でき、JavaScriptからは dataset.price として取り出せる。独自属性を勝手に作ると仕様違反になるが、data-*なら妥当なHTMLのまま要素にデータを持たせられる。
-
問43.cookieはWebサイトをまたいで全ドメインのデータを自由に共有できる仕組みである。
正解:×(誤り)
解説:誤り。正しくはcookieはドメインやパスの制約があり任意のドメインで共有できない。
-
問44.PNGはGIFと同様に256色までしか扱えない。
正解:×(誤り)
解説:誤り。正しくはPNGはフルカラー(24/32ビット)に対応し256色制限はない。
-
問45.style要素はbody要素内にしか記述できず、head内には書けない。
正解:×(誤り)
解説:誤り。正しくはstyle要素は通常head内に記述する(条件付きでbody内も可)。
-
問46.HTTPで「リソースが見つからない」ことを示すステータスコードはどれか。
- ア.200
- イ.301
- ウ.404
- エ.500
正解:ウ.404
解説:404 Not Foundは、サーバーには接続できたがそのURIに対応するリソースが存在しない状態。200は成功、301は恒久的な移動、500はサーバー内部エラーで、いずれも意味が異なる。4xxはクライアント側に原因があるエラーを表す。
-
問47.サーバー内部でエラーが発生したことを示すステータスコードはどれか。
- ア.500
- イ.403
- ウ.302
- エ.400
正解:ア.500
解説:500 Internal Server Errorは、サーバー側のプログラムや設定の問題で処理を完了できなかったことを示す。5xxはサーバー側の原因、4xxはクライアント側の原因という区別で覚える。403は権限不足、400はリクエストの構文誤り、302は一時的な移動。
-
問48.リソースが恒久的に別URIへ移動したことを示すステータスコードはどれか。
- ア.302
- イ.304
- ウ.200
- エ.301
正解:エ.301
解説:301 Moved Permanentlyが恒久的な移動。ブラウザや検索エンジンは以後URIを置き換えて扱い、検索評価も引き継がれる。302は一時的な移動なので元のURIが維持され、304は未更新、200は成功を表す。
-
問49.キャッシュが有効で再取得が不要なことを示すステータスコードはどれか。
- ア.200
- イ.304
- ウ.404
- エ.403
正解:イ.304
解説:304 Not Modifiedは、条件付きリクエストに対して前回から変更がないことを示す応答。ボディを返さないため通信量を節約でき、クライアントは手元のキャッシュをそのまま利用する。200は本体を返す成功、404は不存在、403は権限拒否。
-
問50.HTTPSが標準で使用するポート番号はどれか。
- ア.80
- イ.8080
- ウ.443
- エ.21
正解:ウ.443
解説:HTTPS(SSL/TLS)の標準ポート番号は443である。なお平文のHTTPは80番を使用する。
-
問51.サーバーからリソースを取得する目的で使われるHTTPメソッドはどれか。
- ア.GET
- イ.POST
- ウ.DELETE
- エ.PUT
正解:ア.GET
解説:GETはリソースの取得に用いるメソッドで、サーバーの状態を変えない安全なメソッドとされる。POSTはデータの送信・登録、PUTは置き換え、DELETEは削除に用いるもので、いずれも取得を目的とはしていない。
-
問52.レスポンスのヘッダ情報のみを取得し、ボディを返さないHTTPメソッドはどれか。
- ア.GET
- イ.HEAD
- ウ.OPTIONS
- エ.POST
正解:イ.HEAD
解説:HEADはGETと同じヘッダだけを返しボディを含まない。本体をダウンロードせずに更新日時・サイズ・リンクの生死を確認したいときに使う。OPTIONSは利用可能なメソッドの問い合わせ、POSTはデータ送信で目的が異なる。
-
問53.指定したリソースの削除を要求するHTTPメソッドはどれか。
- ア.PUT
- イ.POST
- ウ.HEAD
- エ.DELETE
正解:エ.DELETE
解説:DELETEメソッドは、指定したリソースの削除をサーバーに要求するHTTPメソッドである。
-
問54.送受信データのメディアタイプ(MIMEタイプ)を示すHTTPヘッダはどれか。
- ア.Content-Type
- イ.Accept
- ウ.Cache-Control
- エ.Authorization
正解:ア.Content-Type
解説:Content-Typeはボディのメディアタイプ(text/html、application/jsonなど)を示すヘッダ。Acceptはクライアントが受け取れる形式を伝えるリクエスト側のヘッダ、Cache-Controlはキャッシュ制御、Authorizationは認証情報の送信に使う。
-
問55.クライアントが受理可能なメディアタイプをサーバーへ伝えるリクエストヘッダはどれか。
- ア.Authorization
- イ.Accept
- ウ.Content-Type
- エ.Set-Cookie
正解:イ.Accept
解説:Acceptはクライアントが処理できるメディアタイプをサーバーに伝えるリクエストヘッダで、サーバーはこれをもとに返す形式を選ぶ(コンテントネゴシエーション)。Content-Typeは実際に送るボディの形式を示すもので、向きと役割が異なる。
-
問56.認証情報をサーバーへ送るために使われるリクエストヘッダはどれか。
- ア.Accept
- イ.Cache-Control
- ウ.Authorization
- エ.Location
正解:ウ.Authorization
解説:Authorizationはクライアントが認証情報をサーバーへ送るリクエストヘッダで、Basic認証やBearerトークンの受け渡しに使う。Acceptは受理可能な形式、Cache-Controlはキャッシュ制御、Locationはリダイレクト先を示すレスポンスヘッダである。
-
問57.キャッシュの動作を制御するために用いられるHTTPヘッダはどれか。
- ア.Accept
- イ.Content-Type
- ウ.Authorization
- エ.Cache-Control
正解:エ.Cache-Control
解説:Cache-Controlはmax-ageやno-store、no-cacheといった指示子でキャッシュの可否と有効期間を制御するヘッダ。リクエスト・レスポンスの双方で使え、HTTP/1.0のExpiresより細かく指定できるため現在の標準となっている。
-
問58.Basic認証で送信される認証情報の符号化方式はどれか。
- ア.AES暗号化
- イ.Base64エンコード
- ウ.MD5ハッシュ
- エ.RSA暗号化
正解:イ.Base64エンコード
解説:Basic認証は「ID:パスワード」をBase64でエンコードしてAuthorizationヘッダに載せるだけで、暗号化ではない。Base64は誰でも復元できるので、平文で送っているのとほぼ同じ。必ずHTTPSと併用する必要がある。
-
問59.バイナリデータをテキストとして扱えるよう変換する符号化方式はどれか。
- ア.URLエンコード
- イ.ROT13
- ウ.Base64
- エ.Gzip
正解:ウ.Base64
解説:Base64はバイナリデータを6ビットずつ区切り、A〜Z・a〜z・0〜9・+・/の64種類の文字に置き換える方式。テキストしか扱えない経路(メールやHTTPヘッダ、Data URI)でバイナリを運ぶために使う。暗号化ではないため秘匿性はなく、データ量は約1.3倍に増える。
-
問60.ページ全体を再読み込みせず非同期にサーバーと通信する技術はどれか。
- ア.CGI
- イ.SSI
- ウ.RSS
- エ.Ajax
正解:エ.Ajax
解説:Ajaxはページ全体を再読み込みせず、非同期にサーバーと通信してページの一部だけを更新する技術。
-
問61.非可逆圧縮で、写真などに適し透過に対応しない画像フォーマットはどれか。
- ア.JPEG
- イ.PNG
- ウ.GIF
- エ.BMP
正解:ア.JPEG
解説:JPEGは人間の目に感じにくい情報を捨てて圧縮する非可逆方式で、階調の豊かな写真を小さいサイズにできる反面、透過は扱えず、保存を繰り返すと劣化が蓄積する。PNGは可逆で透過対応、GIFは256色、BMPは基本的に無圧縮。
-
問62.可逆圧縮かつアルファチャンネルによる半透明に対応する画像フォーマットはどれか。
- ア.JPEG
- イ.PNG
- ウ.BMP
- エ.JPEG 2000
正解:イ.PNG
解説:PNGは可逆圧縮なので何度保存しても劣化せず、アルファチャンネルにより滑らかな半透明を表現できる。JPEGは非可逆で透過非対応、BMPは無圧縮が基本、JPEG 2000はブラウザの対応が限られており、いずれも条件を満たさない。
-
問63.最大256色までで、アニメーションにも対応する画像フォーマットはどれか。
- ア.PNG
- イ.JPEG
- ウ.GIF
- エ.BMP
正解:ウ.GIF
解説:GIFは8ビットのインデックスカラーで最大256色、複数フレームを持たせてアニメーションを表現できる。PNGは色数が多く可逆だが標準では単一画像(APNGは別仕様)、JPEGは写真向けで透過もアニメーションも非対応、BMPは無圧縮の静止画。
-
問64.一般に圧縮を行わずファイルサイズが大きくなりやすい画像フォーマットはどれか。
- ア.JPEG
- イ.GIF
- ウ.PNG
- エ.BMP
正解:エ.BMP
解説:BMPはピクセルの色情報をほぼそのまま並べる無圧縮形式が基本なので、同じ画像でも他の形式よりファイルサイズが大きくなる。JPEG・GIF・PNGはいずれも圧縮を行うため、Web配信ではこれらが使われる。
-
問65.入力値を悪用して不正なSQL文を実行させる攻撃はどれか。
- ア.SQLインジェクション
- イ.XSS
- ウ.CSRF
- エ.ディレクトリトラバーサル
正解:ア.SQLインジェクション
解説:入力値がそのままSQL文に連結されることを悪用し、条件を常に真にしたり別のSQLを実行させたりして、情報の窃取や改ざんを行う攻撃。対策はプレースホルダ(プリペアドステートメント)を使って値と命令を分離することで、単純な文字のエスケープだけに頼るのは危険とされる。
-
問66.Webページに悪意あるスクリプトを埋め込み閲覧者のブラウザで実行させる攻撃はどれか。
- ア.SQLインジェクション
- イ.クロスサイトスクリプティング
- ウ.CSRF
- エ.セッションハイジャック
正解:イ.クロスサイトスクリプティング
解説:利用者の入力がそのままHTMLとして出力されることを悪用し、閲覧者のブラウザ上で攻撃者のスクリプトを実行させる攻撃。cookieの窃取や偽の入力フォーム表示につながる。対策は出力時のエスケープが基本で、cookieにHttpOnly属性を付けることも被害の緩和に有効。
-
問67.利用者の意図しないリクエストを送信させ、なりすまし操作を行わせる攻撃はどれか。
- ア.XSS
- イ.SQLインジェクション
- ウ.CSRF
- エ.DoS
正解:ウ.CSRF
解説:ログイン済みの利用者に、攻撃者が用意した罠のページから意図しないリクエストを送信させ、本人になりすまして操作を行わせる攻撃。ブラウザがcookieを自動送信する性質を悪用する。対策はトークンを埋め込んで正規の画面からの送信か検証すること、cookieにSameSite属性を付けることなど。
-
問68.相対パスなどを悪用し公開範囲外のファイルへアクセスする攻撃はどれか。
- ア.XSS
- イ.CSRF
- ウ.SQLインジェクション
- エ.ディレクトリトラバーサル
正解:エ.ディレクトリトラバーサル
解説:ファイル名のパラメータに「../」などの相対パスを混ぜ、公開範囲の外にある設定ファイルやパスワードファイルへアクセスする攻撃。対策はパスをそのまま受け取らず、正規化したうえで許可された範囲内かを検証すること。
-
問69.HTML文書をツリー構造で表現しプログラムから操作可能にする仕組みはどれか。
- ア.DOM
- イ.SAX
- ウ.JSON
- エ.XSLT
正解:ア.DOM
解説:DOM(Document Object Model)はHTML文書をツリー構造で表現し、プログラムから要素を操作可能にする仕組み。
-
問70.アプリケーションをModel・View・Controllerに分離する設計手法はどれか。
- ア.MVC
- イ.MVVM
- ウ.MVP
- エ.SPA
正解:ア.MVC
解説:MVCはデータとビジネスロジックを担うModel、表示を担うView、入力を受けて両者を仲介するControllerに責務を分ける設計手法。役割を分離することで、見た目の変更がロジックに波及せず、テストや分業がしやすくなる。MVVMやMVPはその派生形。
-
問71.任意の独自データをHTML要素に持たせるために用いる属性はどれか。
- ア.aria-*
- イ.data-*属性
- ウ.role属性
- エ.rel属性
正解:イ.data-*属性
解説:data-*属性は仕様として認められたカスタムデータ属性で、JavaScriptからdatasetで読み書きできる。role属性やaria-*属性はアクセシビリティのために意味や状態を伝えるもの、rel属性はリンク先との関係を示すもので、いずれも任意のデータ置き場ではない。
-
問72.アンパサンド(&)を表す文字参照はどれか。
- ア.<
- イ.>
- ウ.&
- エ.
正解:ウ.&
解説:アンパサンド(&)を表す文字参照は & である。なお < と > はそれぞれ < と > で表す。
-
問73.複数のリクエストにまたがり利用者の状態を保持する仕組みはどれか。
- ア.キャッシュ
- イ.リダイレクト
- ウ.プロキシ
- エ.セッション
正解:エ.セッション
解説:HTTPはステートレスなので、サーバー側に利用者ごとの情報を保存し、cookieなどで渡したセッションIDと結び付けて状態を維持する。これがセッションで、ログイン状態やカート内容の保持に使われる。キャッシュ・リダイレクト・プロキシはいずれも状態保持の仕組みではない。
-
問74.HTML内に意味(セマンティクス)を付与してデータを構造化する仕組みはどれか。
- ア.マイクロデータ
- イ.Data URI
- ウ.Ajax
- エ.Base64
正解:ア.マイクロデータ
解説:マイクロデータはitemscope・itemtype・itempropといった属性でHTML内の要素に意味を与え、検索エンジンなどが人名・住所・商品価格といった情報を機械的に読み取れるようにする仕組み。同じ目的の手法にRDFaやJSON-LDがある。
-
問75.HTML5で文字エンコーディングを指定する正しい記述はどれか。
- ア.<charset>UTF-8</charset>
- イ.<meta charset="UTF-8">
- ウ.<meta encoding="UTF-8">
- エ.<html charset="UTF-8">
正解:イ.<meta charset="UTF-8">
解説:HTML5では<meta charset="UTF-8">と簡潔に書く。charsetという専用の要素は存在せず、meta要素のencoding属性やhtml要素のcharset属性も定義されていない。文字化けを防ぐため、この記述はhead要素のできるだけ先頭に置く。