タグ

perlとbashに関するiwwのブックマーク (4)

  • ShellShockがCGIに及ぼす影響を少し過大評価していたかも - Qiita

    bashの脆弱性(CVE-2014-6271など)によって、PerlRubyCGIからsystem関数などOSコマンドを実行するプログラム言語の機能を使うと、 UserAgent などブラウザから送信されたデータが環境変数に格納された状態でbashが起動し、ShellShockが発生するという話が話題になっているが、当にそうなのか。 実験 次の処理系で実験した。 Perl(5.20.0) Ruby(2.1.3) PHP(5.6.0) Python3(3.4.1) コード OSコマンドのenvを呼び出して表示するだけのCGI。 Perl #!/usr/bin/env perl print "Content-Type: text/html;\n\n"; print system('env');

    ShellShockがCGIに及ぼす影響を少し過大評価していたかも - Qiita
    iww
    iww 2014/09/28
    『コマンドの中にシェルのメタ文字がない場合は、シェルを介さずにシステムコールを使ってコマンドを実行する』 メタ文字は結構頻繁に使うのでやっぱりアウトっぽい
  • perlからsystemコマンド呼ばれる時のシェルについて - OKWAVE

    HP-UX/perl4のスクリプトをLinux(Red Hat)/perl5に移植する際、system関数でのシステムコマンド実行に問題が発生しています。 HP-UX/perl4 で作成したスクリプトを、Linux(Red Hat)/perl5 へ移植するに当たって、system関数の動作が異なり困っています。 HP-UX では ksh をシェルとして使用していたため、perl からのsysytem関数で実行するsystemコマンドも、kshで動作するものを使っていました。Linuxでもログインシェルをkshに設定しました。 ところが、HP-UXで使っていたprintコマンドが使用できず、以下のエラーメッセージが出ます。 sh: print: command not found シェルはkshを指定していても、perlからsystem関数やバッククウォート`` でシステムコマンドを実行する

    perlからsystemコマンド呼ばれる時のシェルについて - OKWAVE
  • 革命の日々! systemの挙動について

    ちょっとakrさんと議論する機会があったのでメモ 現状のRubyだと子プロセス実行中に Ctrl-Cが効かないという問題がある http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/31007 実際に、困っているひともいて。Rubyのtarに含まれているmake testが子プロセスをつくって子供がテストして結果をかえすというスタイルなので、Ctrl-Cで中断できなくて開発者は日々イライラしている。 で、このスレッドで、そうなっている理由が明らかに。 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/31117 ところで、別件であるがperl の真似をしたといいつつ、perlはSIGHUPをマスクしてはいない。 ちょっと気になったので実装をいくつか調べてみた。

  • ファイルの文字列置換 - odz buffer

    ref:某日記(中期) 複数のファイルの特定文字列を一括変換したい場合、 for i in *; do cat < "$i" | sed 's/AAA/BBB/' > "$i"; doneとすると良さそうに見えるけど、これってポータブルなのかねぇ。 tee を使って標準出力は /dev/null に捨てるとか。 for i in *; do sed 's/AAA/BBB/' < "$i" | tee "$i > /dev/null; done と思ったけど、良く考えるとこれも質的なところでは変わらない。 Linux だと cat の変わりに perl -ne 'print; sleep 1' とかにしてみると良く分からない挙動になるので*1、まあ、やめておいたほうがよさげ。 GNU の sed だと for i in *; do sed -i -e 's/AAA/BBB/' "$i";

    ファイルの文字列置換 - odz buffer
  • 1