タグ

cgiに関するissmのブックマーク (28)

  • BASHの脆弱性でCGIスクリプトにアレさせてみました

    環境変数に仕込まれたコードを実行してしまうBASHの脆弱性が CGIスクリプトに影響を与えるか試してみたら結果は悲惨な感じに Tweet 2014年9月25日 嶋田大貴 この記事は2014年のものです 朝から Bash specially-crafted environment variables code injection attack なるもので騒ぎになっていたので、さっそく手元の Apacheで試してみました。 /hoge.cgiというURIで実行されるように、一行のメッセージを出力するだけの CGIスクリプトを設置します。いっけん、なんの入力もクライアント側から受け付けていないため危険のありようもなく見えます。 #!/bin/sh echo "Content-type: text/plain" echo echo "Hi! I'm an ordinary CGI script w

    BASHの脆弱性でCGIスクリプトにアレさせてみました
  • ApacheでCGIを使う場合にpreforkを使った方が良い状況とそのチューニングについて - 人間とウェブの未来

    かなり今更感の漂う内容ではありますが、意外と情報が分散していたり、Apache2.4系を考慮した場合に足りていない内容があったのでこのエントリで一度まとめてみようと思います。 CGIを使うようなシステムでそれなりにアクセスが集中するサーバ、例えば日々のピーク時のApacheのbusyワーカー数が1000になるようなサーバで、かつ、それを処理可能なマシンスペックのサーバであることを前提にしています。 ApacheのMPMCGI実行アーキテクチャの復習 ApacheでCGIを使う場合には、MPMCGI実行アーキテクチャの組み合わせは大きく分けて以下の2つに分ける事ができます。 worker(event) + mod_cgid prefork + mod_cgi Apacheの2.4系から特にworker(event) + mod_cgidのモデルが推奨されているようです。また、2.4系では

    ApacheでCGIを使う場合にpreforkを使った方が良い状況とそのチューニングについて - 人間とウェブの未来
  • RFC: Removing CGI.pm from the core distribution - nntp.perl.org

    I think it's time to seriously consider removing CGI.pm from the core distribution. It is no longer what I'd point *anyone* at for writing *any* sort of web code. It is in the core, as far as I know, because once it was the state of the art, and a major reason for many people to use the language. I don't think either is true now. Finally, if you need CGI, it's easy to install after installing perl

    issm
    issm 2013/06/03
  • 開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー

    開発メモその3です。今回は Perl のおはなし。 何年も前に作ったウェブアプリケーションのコードを開いてみたら黒歴史なコードが出てきて憂な気分になる、そんな経験ありませんか。私はあります。ずっとそんな現実から目を背けて生きてきました。 さて、先日 Perl + CGI で書いて Apache::Registry で高速化している、実行環境が Apache に癒着した CGIアプリケーションを発見しました。おえ〜っ。一から作り直したい気持ちをぐっと堪えて、これを Plack 化したりとリフォームしていくとしましょう。その過程を以下記します。劇的ビフォア・アフター! ・・・とかは期待せず、地道な変更を積み重ねていくのがコツです。 方針 いきなりコードをがりがり書き換えていくというよりは、試行錯誤のしやすい環境に移行させていきながらリフォームを進めます。遠回りですが、結果的にその後の運用が楽

    開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー
  • mod_process_security - Apache上でスレッド単位で権限分離を行うファイルのアクセス制御アーキテクチャ(前半編)

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ソース 「スレッド単位で権限分離を行うWebサーバ上のアクセス制御アーキテクチャ」として、3月15日16日に開催されたIA/IOT/SITE/ISMS合同研究会で発表してきた。概ね、好評だったように思う。ただ、やらないといけないことはいくつかあるので、そこはこれから大学で適宜やっていこうと思う。 まずは、この論文の概要としては、 大規模Webサーバ上で大多数のユーザー(仮想ホスト)を一つのサーバで処理するようなマルチテナント環境において、ユーザー間のセキュリティを担保するためのアクセス制御を行う技術 である。(これまではsuEXECが使われていた) これは、Webサービスが高度化していく時代において、低価格化がより望まれてきており、以前に増し

    mod_process_security - Apache上でスレッド単位で権限分離を行うファイルのアクセス制御アーキテクチャ(前半編)
  • Amon2をCGIで動かした...えっCGI!? - Perl日記

    はい、CGIです。 さくらのレンタルサーバースタンダードプランでまだ借りていて、 PerlでちゃんとWebサイトを動かすのにCGIくらいしかないのでまあやってみた。 最近東方の自作アレンジというジャンルがおもしろいなーと思い、公式のタグ検索だけだとどうも見づらいところあったのでついでに題材にしてみた。 とりあえず結果。見栄えとか、、まあ、、残念ですね。。 https://github.com/rightgo09/TouhouMyArrange CGIでAmon2というかPlack PSGIの仕様ってCGIでなんとかなるんかいな、とか勝手に思っていましたが、 ちゃんと用意されていた。 Plack::Handler::CGI - search.cpan.org というか↓こちらから↑を知りました。ズルしました、すみません。 psgiファイルをCGIで実行するために勉強 - こんにちはこんにちは

    Amon2をCGIで動かした...えっCGI!? - Perl日記
  • Amon2をCGIで動かす | UCWD-Studio

    何気にアクセス解析を確認してると「Amon2 cgi」というキーワードで当サイトに訪問されてる方がいるようで、そいえばPSGI対応WAF(今回の場合Amon2)をCGIで動かすにはどうすれば良いのだろう?と興味を持ったので調べてみました。 #!/usr/bin/perl use strict; use warnings; use Plack::Loader; my $app = Plack::Util::load_psgi('/home/someone/MyApp/app.psgi'); Plack::Loader->auto->run($app); 1; これをとりあえず app.cgi としてCGI実行可能なディレクトリに保存して(もちろんCGIなのでパーミッションも0755とか0705とか実行可能な設定で)、ブラウザからアクセスするとCGIがPSGIを経由してAmon2のapp.ps

    Amon2をCGIで動かす | UCWD-Studio
    issm
    issm 2012/02/18
  • 環境変数 | futomi's CGI Café

    みなさんが作ったホームページにどのような人がアクセスしてきたかを知りたいと思いませんか? 環境変数というものを使って、ある程度のことを知ることができます。 環境変数は、アクセスしたブラウザーがサーバーに対して送信されますので、 これらの情報はサーバー側で受け取ることができます。 Perl スクリプトでは、予約変数である %ENV に自動的に入ってきます。 %ENV は連想配列ですね。実際に環境変数の一覧を表示する CGI を作ってみましょう。 この CGI は連想配列 %ENV のキーをソートして表形式に出力しています。 #!/usr/bin/perl print "Content-type: text/html; charset=utf-8\n"; print "\n"; print "<!DOCTYPE html>\n"; print "<html><head><meta charse

    issm
    issm 2011/03/06
  • RFC 3875: The Common Gateway Interface (CGI) Version 1.1

    This RFC was published on the Independent Submission stream. This RFC is not endorsed by the IETF and has no formal standing in the IETF standards process. Network Working Group D. Robinson Request for Comments: 3875 K. Coar Category: Informational The Apache Software Foundation October 2004 The Common Gateway Interface (CGI) Version 1.1 Status of this Memo This memo provides information for the I

    issm
    issm 2011/03/06
  • Common Gateway Interface - Wikipedia

    この記事には参考文献や外部リンクの一覧が含まれていますが、脚注によって参照されておらず、情報源が不明瞭です。 脚注を導入して、記事の信頼性向上にご協力ください。(2023年3月) Common Gateway Interface(コモン・ゲートウェイ・インタフェース、CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。現存する多くのウェブサーバプログラムはCGIの機能を利用することができる。 [1][2][3] ウェブサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者(クライアント)の要求に応じて送り返すことである。そのためサーバプログラム単体では情報をその場で動的に生成してクライアントに送信するような仕組みを作ることはできなかった。 そこでサーバプログラムから他のプログラムを呼び出し、その処理結果をクライアントに送信する方法が考案された。それを実現するため

  • CGI Environment Variables

    issm
    issm 2011/03/06
  • ソースでわかるSixapart転落の歴史 - メガマウスの日記、自壊あるいは無差別テロに至る道筋

    【重要発表】 シックス・アパートは2月1日に、新しい体制に生まれ変わります! http://www.sixapart.jp/news/2011/01/21-1700.html 早い話が身売りである。WordPressなどの競合を排して独自に日市場を切り開く体力も技術的優位もないのがはっきりしたということだろう。 日におけるSixapartと僕らの愛すべきMovableTypeの命運が絶たれたことを記念して少しばかり回想をしよう。 00年代の前半。MovableType2.2が「ブログ」という聞き慣れない言葉とともに日にそれとなく入ってきたとき、当時駆け出しだった私はもちろん、日のWeb業界でMovableTypeに度肝を抜かれなかったものはいなかったと思う。 垢抜けたインターフェース 洗練されたCSSベースのデザインテーマ トラックバック、RSSといった後にWeb2.0と称される斬

    ソースでわかるSixapart転落の歴史 - メガマウスの日記、自壊あるいは無差別テロに至る道筋
  • tDiary を ruby1.9 + apache + fcgi で動かしてみた

    2010-05-03 前回はtDiary を ruby1.9 + nginx + fcgi で動かしてみたんだけど、以下の理由から実用には厳しいと判断。 理由1: プロセスの生成・管理の仕組みがない nginx は FastCGI プロセスを起動する仕組みを持たない。 spawn-fcgi などを使って、 Web サーバのプロセスとは別に FastCGI のプロセスを起動しておく。 さらに FastCGI プロセスが異常終了することを考えると、プロセスの監視・再起動を自動化する仕組みも必要になる。 spawn-fcgi の -P オプションを使って FastCGI プロセスの PID をファイルに書き出しておいて、monit などの自動監視ツールを使えばいいんだろうけど、スクリプト単位でここまでやるのは面倒。 $ spawn-fcgi -p 10000 -P /var/run/tdiary

    tDiary を ruby1.9 + apache + fcgi で動かしてみた
  • tDiary を ruby1.9 + nginx + fcgi で動かしてみた

    2010-04-29 tDiary + ruby1.9 + fcgi で動かそうとして挫折した記録 - HsbtDiaryより。 そういえばうちのサーバも VPS なので、 FastCGI を使えるんだった。 環境 CentOS 5.2 nginx 0.6.39 ruby 1.9.1-p378 tdiary 2.3.3.20100326 Nginx のインストール NginxはWebサーバの一種。Apacheより軽いらしい。 EPELに用意されているCentOS用のRPMを使ってインストール。 $ wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm $ sudo rpm -Uvh epel-release-5-3.noarch.rpm $ sudo yum install ng

    tDiary を ruby1.9 + nginx + fcgi で動かしてみた
  • FcgiWrap – Nginx

    Simple CGI support for Nginx (fcgiwrap) What? fcgiwrap is a simple server for running CGI applications over FastCGI. It hopes to provide clean CGI support to Nginx (and other web servers that may need it). Features and limitations Features very lightweight (84KB of private memory per instance) fixes broken CR/LF in headers handles environment in a sane way (CGI scripts get HTTP-related env. vars f

  • nginx + fcgiwrap でcgiを動かす | fujishinko 雑記帳

    nginxで小物のperlpythonプログラムを動かすために、 Simple CGI support for Nginx (fcgiwrap) を設定したときの作業内容です。 fcgiwrapをmakeするとき、 fcgi_stdio.h: そのようなファイルやディレクトリはありません というエラーメッセージと共にビルドに失敗しました。 まずは、fastcgiのソースを取得し展開します。 #cd /usr/local/src #wget http://www.fastcgi.com/dist/fcgi.tar.gz #tar zxvf fcgi-2.4.0.tar.gz #cd fcgi-2.4.0 #./configure #make #make install 次に、fcgiwrapのインストールを行います。 #wget http://github.com/gnosek/fcgiw

    nginx + fcgiwrap でcgiを動かす | fujishinko 雑記帳
  • CGIをPlackで開発(2) - D-6 [相変わらず根無し]

    CGIをPlackで開発(2) 前のエントリ書いたら宮川さんにオススメ方法を教えてもらった http://twitter.com/miyagawa/status/10271128928plackup \      -L Shotgun      -MPlack::App::WrapCGI      -e 'Plack::App::WrapCGI->new(script => "/path/to/cgiscript.cgi")' だそうです!これなら全ての要件を満たせるもよう!そしてapp.psgiを作る必要ありません。 今これやってみて一つだけ問題点。多分POD入りのCGIは動かない。それと、__DATA__は見てくれるけど、__END__があると動かない。__END__さっき簡単なパッチのpull requestを送っておきました! カテゴリ 開発 タグ cgi perl plack 2

  • CGIをPlackで開発 - D-6 [相変わらず根無し]

    CGIをPlackで開発 ちょっと案件で簡単なCGIスクリプトをを開発することになった。StarmanとかTwiggyでほとんど全て書いているのに今更CGIとかそういう突っ込みはとりあえずおいておいて・・・環境を作るのも面倒くさいし、簡単にサーバーを立ち上げたり落としたりしたい。 そこでPlackです!具体的にはplackupとCGI::Emulate::PSGIを使います。 何も考えずにとりあえず開発したいので、以下のようにapp.psgiにコードを書いていく。 use strict; use CGI::Emulate::PSGI; return CGI::Emulate::PSGI->handler(sub { CGI::initialize_globals(); # 重要 # ここから #!/usr/bin/env perl use strict; use warnings; use

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • CGI.pmで作ったCGIをコマンドラインから実行する - D-6 [相変わらず根無し]

    CGI.pmで作ったCGIをコマンドラインから実行する 某所での会話: 13:14 <#perl6> t****: y'know, one thing that got me into Ruby was that the CGI library would auto-detect that I was testing it in a browser and take arguments as if I was working in a browser. Made troubleshooting a breeze... 13:14 <#perl6> t****: I mean, testing from the command line... 13:15 <#perl6> t****: I always wished the perl CGI module would do that...

    issm
    issm 2009/12/08