2010年09月22日21:30 カテゴリLightweight Languages 構造化テキストの間違ったエスケープ手法について 昨晩のtwitter XSS祭りは、ふだんもtwitter.comは使わない私には遠くの祭り囃子だったのですが、せっかくの自戒の機会なので。 Kazuho@Cybozu Labs: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について 正しいアプローチは、全てのルールを同時に適用することです。 これは残念ながら(おそらく)必要条件であっても十分条件ではありません。 こういう(かなりええかげんな)正規表現でtweetをparseしていたとします。 re_http = '(?:https?://[\\x21-\\x7e]+)'; re_user = '(?:[@][0-9A-Za-z_]{1,15})'; re_hash
2010年09月06日23:00 カテゴリLightweight Languages perl - でWindows用のzipファイルをUnixで作る 何度目の車輪の再発明かわからないけど、見つからなかったものは見つからなかったので。 Windowsで文字化けしないZIPファイルをMacで作る : ライフハッカー[日本版] ezip.pl 新規に作成する場合は、こちら。 #!/usr/bin/env perl # # $Id: ezip.pl,v 0.1 2010/09/06 13:52:00 dankogai Exp dankogai $ # use strict; use warnings; use Archive::Zip qw/:ERROR_CODES/; use Getopt::Std; use Encode; use Unicode::Normalize; # to handl
1. 非同期プログラミング with Perl 2010/08/07 Japan Perl Association 代表理事 株式会社ライブドア 牧 大 輔 (@lestrrat) 3. 普通の書き方 use strict; use LWP::UserAgent; my @urls = qw( http://www.livedoor.com/ http://www.dena.jp/ http://mixi.jp/ http://www.gaiax.co.jp/ ); my $ua = LWP::UserAgent->new(); foreach my $url (@urls) { my $res = $ua->get( $url ); ... }
Twitter経由でPlack::Testを見た。なにこれ。もうCGIいらないじゃん。 PlackやPSGIを知らない人は先に適当なページでも見て頂きたい。そんなんよりPSGIのエントリ書いてほしいって方はコメント残しておいてください。でももう半年も経つからググればいっぱい見つかるんじゃないかな。俺ほとんどPSGIに首突っ込んでないし。 で、Plack::Testの何がどうすごいかというと、次のようにPSGIアプリケーションのテストができる。テストコードは宮川さんのものに、クエリ部分を付け加えたものだ。 use Plack::Test; use Test::More; use HTTP::Request; use strict; use warnings; my $app = sub { my $env = shift; my $query = { map { split(/=/) } s
たとえばこんな。 Rakudo Star ではどれも実装済み。今すぐ使えます。 強化された正規表現 Perl 6 の公式なパーサ自体も Perl 6 の正規表現で書かれています。 ……は置いといて。10行ちょっとで CSV をパースする正規表現が書ける。クォートされた値にも複数行にまたがる値にも対応。 # CSV クラスは以下のものを修正して使っています # http://github.com/masak/csv/blob/master/lib/Text/CSV.pm # 正規表現をまとめた grammar (クラスの一種) grammar CSV { regex TOP { ^ <line> ** \n <empty_line>? $ } regex line { <value> ** ',' } regex value { | <pure_text> | \s* \" <quoted_
When you need perl, think perl.org Perlの次期メジャーバージョンとなるPerl 6のリリースがどうやら29日になるようだと複数のメディアが伝えている。ベースになっている報道はPCWorld Business Centerに掲載されたPerl Creator Hints at Imminent Perl 6 Releaseという記事。OSCONカンファレンスの"State of the Onion"講演でPerlの開発者であるLarry Wallがそうした内容を示唆したという。 2009年8月の時点では2010年4月でのPerl6登場が発表されていた。2010年4月に公開が予定されているバージョンは、Perl 6仕様のうちいくつかを実装したものになるとされており、実装が完成したバージョンではないという点をはっきりさせるため、Perl 6という名称でのリリ
レスポンスヘッダにExpiresやCache-Controlを追加することで、ブラウザのキャッシュを有効活用し、ダウンロードの時間をなくす事でウェブの高速化を実現できます。またサーバ側にとってもリクエスト数を減らす事ができ、負荷の削減にもなります ApacheにはExpiresやCache-Controlを付加するmod_expiresというモジュールがありますが、Plackにはまだなかったので作ってみました。VarnishのようにWebサーバ機能を持たないリバースプロキシを使う場合には、便利なんじゃないかなぁと思います CPANにリリース済みです http://search.cpan.org/dist/Plack-Middleware-Expires/ 使い方 builder { enable 'Expires', content_type => [ 'text/css', 'appli
一般的な OSX 環境および Linux 環境における、モダンな Perl 開発環境の構築方法についてまとめてみたよ。 perlbrew のインストールperlbrew をつかうことにより、簡単に最新版の Perl5 を利用することができるようになる。 perlbrew をいれる。% curl -L http://xrl.us/perlbrew | perl - install % ~/perl5/perlbrew/bin/perlbrew init ~/.bashrc (または ~/.zshrc)に source ~/perl5/perlbrew/etc/bashrc を追記。あたらしいシェルをたちあげる。最新版の perl をインストールする。% perlbrew install perl-5.12.1 % perlbrew switch perl-5.12.1 ここまできたら、she
UTF-8で作成されたメール本文をMIME::Lite及びEncodeを使用してメールを送信をする。 そこで問題となってくるのが下記の3点。 1.チルダ(全角)等の文字化け("〜 ‖ − ¢ £ ¬ ") 2.機種依存文字が含まれていた場合の対応 3.MIME::Lite で smtp送信する場合、Return-Pathが有効にならない 1.チルダ(全角)等の文字化け("〜 ‖ − ¢ £ ¬ ")に関する解決方法: これは有名らしいのですが、Encode::JPが採用している UnicodeConsortium の写像表 に問題があるとかで、 一部の文字が化けます。チルダとか。 しようがないので こんな風に対応しておきました。 my %map = ( "\x{ff5e}" => "\x{301c}", # 〜 (1-33, WAVE DASH) "\x{2225}" => "\x{201
Some perl web application tutorial says "First, install WAF from CPAN..., and drink a espresso". heh, It's very painful. Then, I tried to pack the Sinatra-ish WAF in one file. I use yusukebe's Hitagi.pm for this hack. Hitagi.pm doesn't depend to any XS modules without DBI, LWP, Digest::SHA1, these three modules are most popular, and pre-installed on normal rental servers, It's not big issue. First
NAME FFmpeg - Perl interface to FFmpeg, a video converter written in C SYNOPSIS use FFmpeg; my @media = qw(my.mpg my.avi my.mov my.mp2 my.mp3); #instantiate a new FFmpeg object. my $ff = FFmpeg->new(); foreach my $media (@media){ #load each media file $ff->input_file($media); #or from a URL. note that input_url #enables use of other input_url_* args $ff->input_url('http://wherever.org/whatever.mpg
全自動で動画を一定間隔でキャプチャー → サムネイル化 自動化スクリプト: /usr/local/bin/videothumb #!/usr/bin/perl ## 設定項目 ## $w = 200; #サムネイル1枚当たりの横幅px $interval = 3; #動画を切り抜く間隔(秒) $tmpdir = "/dev/shm/thumbnail"; #作業用ディレクトリ. #頻繁なファイルIOがあるので/dev/shmを推奨 exit unless -d $tmpdir; exit unless -w $tmpdir; &detect_aspect; &detect_length; $s = 1; while ($s < $length) { &mk_thumb ; $name = sprintf ("%06d", $s); rename ("$tmpdir/00000001.jp
NAME GD::Graph - Graph Plotting Module for Perl 5 SYNOPSIS use GD::Graph::moduleName; DESCRIPTION GD::Graph is a perl5 module to create charts using the GD module. The following classes for graphs with axes are defined: GD::Graph::lines Create a line chart. GD::Graph::bars and GD::Graph::hbars Create a bar chart with vertical or horizontal bars. GD::Graph::points Create an chart, displaying the da
Perl › モジュール › here Devel::NYTProfはプログラムの中のどの処理に時間がかかっているかを調べるツールです。このようなツールをでプロファイラといいます。解析結果をHTMLファイルに変換してくれるので、とても見やすいです。 プロファイルを作成するのは簡単です。次のコマンドを実行するとカレントディレクトリに「nytprof.out」というプロファイルを情報を出力したファイルが作成されます。 # プロファイル情報の作成 perl -d:NYTProf target.pl 「nytprof.out」をHTMLファイルに変換するにはnytprofhtmlコマンドを実行します。 # プロファイル情報をHTMLファイルに変換する nytprofhtml カレントディレクトリの「nytprof/」ディレクトリの中にHTMLファイルが作成されます。「nytprof/index.h
意外と知られていないperlテクってのが、意外とあるもんですね。 最近身の回りでいくつか話題に上がったものがあったので、ちょっと書いてみます。 どれも最新のモダパ的なモノではないけども、知っておくと地味に便利かもしれないノウハウです。 中級レベル以上のperlユーザの人たちでも「お、こんなの知らなかった」というのもあるかもね。 複数項目でのソート よくエクセルなんかで「A列を降順、B列を昇順にして並び替え」みたいなことしますよね? perlで複数項目のsortではどうすればできるでしょうか? じつはとっても簡単。sortの次に続くブロックの中でorするだけです。 例えば以下のような4人の子供たちのデータを年齢順、体重順でソートしてみます。 use strict; my @data = ( { name => '太郎', age => 10, weight => 25, }, { name
本連載では、第一線のPerlハッカーが回替わりで執筆していきます。記念すべき第1回は、WEB+DB PRESS本誌ではVol.2から執筆しており、長らく連載も担当していた宮川達彦さんです。 はじめに PerlでWeb開発をするためのフレームワークは百花繚乱、人気を集めています。本稿では、これらのフレームワークが共通して利用するためのインタフェース仕様であるPSGIと、そのエンジンとしての実装であるPlackを紹介します。 PSGIに至る道 PerlとWebアプリケーション開発の親和性 Perlは「インターネットのグルー(糊:のり)言語」とも言われ、CGIによる開発がメインだった1990年代から、Webアプリケーション開発に最も関わりのあるプログラミング言語の一つと言ってよいでしょう。2000年代に入っても、Ruby on RailsやPHPなどの他言語からの影響も取り入れながら、Web開発
DoCoMo,EZweb,Softbankを共通の外部CSSファイルからスタイルを反映させるモジュールを作りました。 http://search.cpan.org/~komoriya/HTML-MobileJpCSS-0.01/ 3キャリア間での変換の必要性 DoCoMoでは外部CSSを参照できずインラインのみの対応となっています。 DoCoMoのインライン化についてはid:tokuhiromさんの作成したHTML::DoCoMoCSSこちらで対応が可能なのですが、3キャリア間で共通のCSSを参照するとなると属性の指定方法に微妙な差異が問題となります。 例えば小さいフォントを表示したい時は、 DoCoMo --- font-size:xx-small EZweb --- font-size:10px Softbank --- font-size:smallと属性の値が異なります。 hrタグ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く