実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

Similar documents
Webデザイン論

リスト 1 1 <HTML> <HEAD> 3 <META http-equiv="content-type" content="text/html; charset=euc-jp"> 4 <TITLE> 住所の検索 </TITLE> 5 </HEAD> 6 <BODY> <FORM method=

Webプログラミング演習

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 講義で使うフォルダ 2/23

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) Web プログラミング 1 CGI (3 章 ) 2012/6/12( 水 ) 講義

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

メディプロ1 Javaサーブレット補足資料.ppt

<48746D6C8AEE91628D758DC02E786C73>

1

C:\Apache Software Foundation\Apache2.2\htdocs\sample\login.html サンプルプログラム passworddisc.php <head><title> ログイン </title></head> $user=$_post['user']; $

PowerPoint プレゼンテーション

Webデザイン論

forever朝活

54 5 PHP Web hellow.php 1:<?php 2: echo "Hellow, PHP!Y=n"; 3:?> echo PHP C 2: printf("hellow, PHP!Y=n"); PHP (php) $ php hellow.php Hellow, PHP! 5.1.2

WEBシステムのセキュリティ技術

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

PowerPoint プレゼンテーション

C G I 入 門 講 座

Microsoft Word - PHP演習資料.doc

JavaScript 演習 2 1

情報システム設計論II ユーザインタフェース(1)

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

2. 動的コンテンツとは動的コンテンツとは Web ブラウザからの要求に応じて動的に Web ページや画像などを生成する Web コンテンツのことをいいます Web で利用するサーチエンジンやアクセスカウンタ等は この仕組みを用いています 動的コンテンツは大きく次の二つに分類されます (1) Web

ビジネスサーバ設定マニュアル_Standard応用編

<4D F736F F D A957A A A8FEE95F18F88979D DEC90AC E646F63>

SOC Report

ご利用における制限事項と入力制限一覧 ご利用における制限事項と入力制限一覧 アルファメールプラチナでご利用いただくサービスにおいて 以下のような制限事項や入力制限を設けています ご利用時にはご注意ください 制限事項と入力制限は 2017 年 2 月 1 日時点での情報を元に作成しています 基本設定

ファイルの内容本プログラムのファイルの内容は 以下の通りです form.cgi フォームプログラム ( パーミッション 755) form.html 入力及び確認画面用 html ファイル ( パーミッション 644) error.html エラー画面用 html ( パーミッション 644) fi

Taro-cshプログラミングの応用.jt

Web データ管理 JavaScript (1) (4 章 ) 2011/12/7( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/21

ダウンロードしたファイル (ProselfDisk.exe) をダブルクリックして実行してください 図 2 のような画面が表示されるので 次へ (N)> をクリックしてください 図 2 インストールウイザード画面 図 3 のような画面が表示されるので 使用許諾契約の全項目に同意します (A) にチェ

Create!Form V11 - 機能リファレンス - テスト実行

PowerPoint プレゼンテーション

スライド 1

本チュートリアルについて 14 部構成 比較的簡単なトピックから 各回 プログラミング言語 任意 チュートリアルで 新しい内容 宿題 プログラミング演習 次の週 結果について発表 もしくは話し合いをする スライドは Python で Python, C++, Java, Perl についての質問い答

PowerPoint プレゼンテーション

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

Another HTML-lint 導入マニュアル(JSP)版

Cisco CSS HTTP キープアライブと ColdFusion サーバの連携

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Microsoft Word - SE第14回.doc

2006

インターネット技術特論 CGI 動的文書生成 C:CGI による動的文書生成 (C 言語 ) 山口実靖 課題 ( ろ ) 本学 Web サーバに自作 CGI プログラムを公開し, その URL とプログラムをメー

Prog2_4th

KDDI ホスティングサービス G120 KDDI ホスティングサービス G200 WordPress インストールガイド ( ご参考資料 ) rev.1.2 KDDI 株式会社 1

PowerPoint プレゼンテーション

「MT-3_2-ja

PowerPoint プレゼンテーション

オンラインテスト

Microsoft PowerPoint - Lecture_2

◎phpapi.indd

Microsoft PowerPoint asp cgi.pptx

soturon2013

WebOTXマニュアル

Si 知識情報処理

■新聞記事

(Microsoft Word - Compiere3.0Windows\203C\203\223\203X\203g\201[\203\213\203K\203C\203h.doc)

1 はじめに はじめに 本マニュアルは アルファメールプラチナをご利用のお客様が 新 Web サーバー環境 に移行する手順と設定方法をご案内しております 新 Web サーバー環境ご利用開始までの手順について お客様 弊社 新 Web サーバー切替の申し込み P.3 新 Web サーバー切替のお申し込

SOC Report

ウェブサイト内検索機能マニュアル

1 ログインとログアウト 1.1 ログイン ログイン画面で [ password ] 欄にパスワードを入力します (図 1) 図 1 ログイン画面 正しくログインができると Ubuntu のデスクトップ画面 図2 が表示されます 図2 Ubuntu デスクトップ画面 2

第 1 章 JavaScript/jQuery JavaScript とは JavaScript( ジャバスクリプト ) は HTML や CSS また PHP などでは実現することの難しい さまざまな効果を Web ページ上で実現できるスクリプト言語です 一時期 Web ページ作成に

目次 1 環境 バージョン インストール環境 インストール手順 前提条件 CentOS SSHD の設定 VSFTPD の設定 コンテンツ管理 CGI のイ

SOC Report

Create!Form V11 - Excel 出力設定

任意の間隔での FTP 画像送信イベントの設定方法 はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページ

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

共通フィルタの条件を設定する 迷惑メール検知 (SpamAssassin) の設定 迷惑メール検知 (SpamAssassin) とは.

Taro php.jtdc

9 WEB監視

allows attackers to steal the username-password pair saved in the password manager if the login page or other pages in the same domain are vulnerable

目次 1. テンプレートの準備 1.1 エクセルファイルの準備 1.2 タグを作成する 1.3 エクセルファイルの表示調整 2.PC へテンプレートを追加 3.iPad での ICLT の操作 3.1 入力者の操作 入力者のログイン テンプレートを更新する チェッ

Microsoft Word - RefWorksコース doc

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

プログラミング実習I

Microsoft Word - 1_基本編-1章

Microsoft PowerPoint - widget.ppt

外字登録 取扱説明書 (14.07) 株式会社タテムラ

第7回 Javascript入門

Microsoft Word 基_シラバス.doc

フォームとインナー HTML を使って動的にページ内の文章を変更しよう 問題 1. つぎの指示と画面を参考に HTML を組みなさい 仕様 テキストボックスに任意の文字を入力し [ コメント ] ボタンをクリックすると 下部の文章がテキストボックスの内容に置き換わる フォーム名 : f1 テキストボ

SVF Ver 環境設定 パッチについて

<4D F736F F D208AC888D B836A F C91808DEC837D836A B81698AC7979D8ED A E646F6

Microsoft PowerPoint - 04WWWとHTML.pptx

スライド 1

8. Windows の補足情報 コマンドの使用についての説明です Windows からのファイル直接印刷 Windows でコマンドを使用したファイル直接印刷の方法についての説明です この機能はネットワーク接続をしているときに使用できます この方法で印刷できるファイルは 本機が搭載しているエミュレ

グループ一覧を並び替える すべてのユーザー グループの並び順を変更する ユーザーの登録

kiso2-03.key

ADempiere (3.5)

Taro-02_Web_html自習テキストⅡ.

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

Webプログラミング演習

JavaScriptで プログラミング

Prog2_12th

TSUBAME利用手引き

( 目次 ) 1. WordPressインストールガイド はじめに 制限事項 サイト初期設定 WordPressのインストール ( コントロールパネル付属インストーラより ) WordPressのインストール ( 手動インス

情報C 4月スクーリング プリント

1. 信頼済みサイトの設定 (1/3) この設定をしないとレイアウト ( 公報 ) ダウンロードなどの一部の機能が使えませんので 必ず設定してください 1 Internet Explorer を起動し [ ツール ]-[ インターネットオプション (O)] を選択します 2 [ セキュリティ ] の

JavaScript演習

Transcription:

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する次の項目を調べよ このとき CGIプログラムを置く場所 ( CGI 実行ディレクトリ) と そこに置いたCGIプログラムが呼び出されるURLを確認せよ (2) prompt_% sudo /sbin/service httpd start を実行してWebサーバを起動せよ ( sudo コマンドでパスワードが要求されるので ログインに用いたパスワードを入力すること ) 実験 2 CGIプログラムの実行 (1) 次に示す Perl プログラムを入力し コマンドラインで実行して動作を確認せよ このとき UNIX 上のファイルパーミッションに注意すること (2) このプログラムを CGI 実行ディレクトリにコピーし Web ブラウザで実行できることを確認せよ 必要であれば sudo コマンドを使用すること program1.cgi #!/usr/bin/perl -wt my $time = localtime; print "Content-type: text/html n n"; < html> < head>< title> program1 < /title >< /head> < body bgcolor="#ffccaa" > < p> jikoku $time < /p> < /body> < /html> END_OF_PAGE -1-

実験 3 GET リクエストで使った CGI プログラム ( 1) Web ブラウザで URL の後ろに? に続けて文字列を入力すると 変数 $ENV { QUERY_STRING} として CGI プログラムに渡される このことを CGI プログラムを作成して確認せよ ( 2) Perl の system 関数を使って UNIX の ls コマンドを実行する Perl プログラムを作成せよ このとき1 行目の Perl 起動オプションで T オプションを使わないことに注意すること (3)(1) (2) を作興にして 任意のディレクトリを対象に ls コマンドを実行出来るようにせよ 実験 4 FORM と CGI の連携 CGIプログラムは通常それ単体ではなく html の FORM 入力と組み合わせて実 行されることが多い (1) 次に示す html ファイルに FORM に関する記述 (a) (b) を加えて html ファイルを完成させよ そのファイルを httpd.conf で指定されるドキュメン トルートに置いて Web ブラウザでアクセス出来ることを確認せよ ( a) 呼び出しCGIプログラムを指定する FORM タグ ( METHOD 属性は GET を使用 ) ( b)cgiプログラムに渡すデータを入力する INPUT タグ ( TYPE 属性は TEXT を使用 ) ( 2)( 1) の html を submit したときに呼び出されるCGIプログラムを作成し 実験 3と同様に入力されたディレクトリに対して ls コマンドを実行した結果を表示するプログラムを作成せよ form1.html < html> < head>< title> form and cgi < /title >< /head> < body bgcolor="#aaccff" > < form action="cgi-bin/program1.cgi" method="get" > < INPUT type="text" name="txt" > < p> < /p> < hr> < INPUT TYPE="SUBMIT" VALUE="SEND" > < /form> < /body> < /html> -2-

3 実験結果 実験 1 (1)CGI プログラムを置く場所 呼び出される URL "/var/www/cgi-bin/" "http://localhost/" (2) 実行 [ jikken@jikken204 ~ ] $ sudo /sbin/service httpd start Password: httpd を起動中 : [ OK ] 実験 2 (1) 実行 [ jikken@jikken204 ~ ] $ perl -wt program1.cgi Content-type: text/html < html> < head>< title> program1 < /title >< /head> < body bgcolor="#ffccaa" > < p> jikoku Thu Dec 7 13:18:10 2006 < /p> < /body> < /html> [ 2 ] + Done emacs program1.cgi (2) 読み込まれなかったので"chmod" を実行 後確認 [ jikken@jikken204 cgi-bin ] $ chmod +x program1.cgi chmod: changing permissions of `program1.cgi': 許可されていない操作です [ jikken@jikken204 cgi-bin ] $ sudo chmod +x program1.cgi Password: [ jikken@jikken204 cgi-bin ] $ sudo ls -l 合計 8 -rwxr-xr-x 1 root root 234 12 月 7 13:21 program1.cgi -3-

実験 3 (1) 入力した文字が出力されることの確認 // strict 宣言 my $time = localtime; // 変数 $time の宣言 現在の時間を代入 // 出力 1ここから END_OF_PAGE までを出力 < p> jikoku $time $ENV{ QUERY_STRING }</p> // 変数 $time と変数 $ENV{ QUERY_STRING} を出力する // ここでの $ENV{ QUERY_STRING} は? の後に入力された文字列 END_OF_SET // 出力 2 終了 (2) ls コマンドが実行出来ることを確認 // strict 宣言 my $time = localtime; // 変数 $time の宣言 現在の時間を代入 // 出力 1ここから END_OF_PAGE までを出力 < p> jikoku $time < /p > // 文字列 1 変数 $time を表示 < p > // 文字列 2 開始 END_OF_PAGE // 出力 1はここまで system ("ls"." /var/www/"); // system 関数 ls コマンドを実行 // system 関数にはプリント関数が入っているので関数がかぶらないようにプ リント関数を分割した print << END_OF_SET // 出力 2ここから END_OF_SET まで出力 < /p > // 文字列 2 終了 END_OF_SET // 出力 2 終了 -4-

(3) 動作確認 // strict 宣言 my $time = localtime; // 変数 $time の宣言 現在の時間を代入 // 出力 1ここから END_OF_PAGE までを出力 < p> jikoku $time < /p > // 文字列 1 変数 $time を表示 < p > // 文字列 2 開始 END_OF_PAGE // 出力 1はここまで system ("ls $ENV{ QUERY_STRING }"); // system 関数で ls コマンドを実行する // このとき ls 以降の文字を変数 $ENV{ QUERY_STRING} にすることに よって? 以降の入力からディレクトリが指定出来る print << END_OF_SET // 出力 2ここから END_OF_SET まで出力 < /p > // 文字列 2 終了 END_OF_SET // 出力 2 終了 -5-

実験 4 (1) Web ブラウザで動作確認 < html > // html 開始 < head>< title> form and cgi < /title >< /head > // タイトルの設定 < body bgcolor="#aaccff" > // 背景の設定 < form action="cgi-bin/program1.cgi" method="get" > // 送信先を CGI に設定 < INPUT type="text" name="txt" > // テキストボックスの作成 < p> moji < /p > // 文 < hr> < INPUT TYPE="SUBMIT" VALUE="SEND" > // テキストボックスの文字を CGI へ送信 < /form> < /body> < /html> (2) テキストよ読み込ませたところ "txt=" から始まり "/" が"%F2" に変化し ていたので それを修正 後動作確認 // strict 宣言 my @ls = split /txt=/,$env{ QUERY_STRING }; // "?" 以降に入力された文字の "txt=" 部分を分割 // 出力 1ここから END_OF_PAGE までを出力 < p > // 文字列 2 開始 END_OF_PAGE // 出力 1はここまで $ls[ 1 ] =~ s/%2f/ //g ; // 文字列の "%F2" 部分を"/" に置き換える system ("ls $ls[ 1 ]"); // 置き換えた文字列で ls のディレクトリ指定 print << END_OF_SET // 出力 2ここから END_OF_SET まで出力 < /p > // 文字列 2 終了 END_OF_SET // 出力 2 終了 -6-

4 考察 1 実験 1(1) で調べた内容について説明せよ 実験結果 1(1) 参照 2 実験 2(1) のプログラムを説明せよ // strict 宣言 my $time = localtime; // 変数 $time の宣言 現在の時間を代入 // ここから END_OF_PAGE までを出力 < p> jikoku $time < /p > // 文字列 1 変数 $time を表示 < p > // 文字列 2 END_OF_PAGE // 出力はここまで 3 実験 3(1 ) (2) (3) で作成したプログラムそれぞれ説明せよ 実験結果 実験 3 参照 4 実験 2では perl 実行オプションに - T を使用したが 実験 3では使用していな い なぜ使用しなかったのか また - T オプションはどのような場合に有用であ るか考えよ - T オプションはセキュリティチェックに使われる - T オプションを付けて問題が発生するプログラム以外は付けるのが原則 それにより 実験 2では使用されている 実験 3では フォームから入力された文字列をコマンドとして実行 という作業を行っている このように CGI からコマンドを実行する作業は - T オプションによってブロックされてしまうために 付けることが出来ない -7-

5 実験 4で作成した html ファイル CGIプログラムを説明せよ 実験結果 実験 4 参照 6 実験 3 4ではGETリクエストを用いたが もう一つのPOSTリクエストがよく使われる 両者の特徴と違いを述べよ GETの特徴 単一の変数に値が代入される 長い書き込みが不可能 POSTの特徴 配列に値が代入される 書き込みした後 URLがだらだらと長く表示されない 書き込みできる文字列の長さの制限がなくなる サーバーによってはPOSTが使えない設定になっている場合がある -8-