技術を活かし、新しい価値を創造する DeNAのエンジニアは、想像を超えるDelightを届けるために何ができるかを考え、技術力と発想力で新しい価値を生み出しています。 多様な専門性を持ったエンジニアが切磋琢磨し、互いに刺激し合える環境や制度がさらなる成長へとつなげます。
一見Emailアドレスにマッチする正規表現を組み立てるのは簡単そうに思えますが、RFC 5322に厳密に準拠した正規表現を創りだそうとするととんでも無い努力が必要となるようです。 「Email Address Regular Expression That 99.9% Works」は、様々なプログラミング言語ごとに、Emailアドレスに99%マッチする正規表現を掲載したサイトで、例えばPerl 5.10より前のバージョンのPerl用として、掲載されている長大な正規表現を見れば、その難易度の高さを確認することができます。 正規表現にはなんの解説もなくどのような意図をもって作られたのか説明はありません(よって99%マッチするかどうかは本当のところは不明)。ちなみに日本語で読める貴重な情報「Perlメモ」では、「perl5.6.0以前の perl ではメールアドレスの正規表現を正確に記述すること
2014年 Webアプリケーションフレームワークトレンド(PHP / Java / Ruby / Python / Perl)JavaRubyPythonPerlPHP はじめに 一昨日、FIFA15 でサイドバックが前線に放ったフィードが直接入って80m強の超ロングシュートとなって困惑しました。 さて、話は変わりますが、2014年12月時点の TIOBE Programming Community Index によると、昨年と比較して最もランクアップしているプログラミング言語は、Visual Basic なんですね。 そんなプログラミング言語上位20位ですが、Webアプリケーションを構築するにあたって、どの言語を採用するかというのと同じく悩ましいのがどのフレームワークを採用するかということ。 フレームワークの選定基準はアプリケーションの要件はもちろんのこと、環境や開発者、その他にも様々な
Redditを眺めておりましたら以下の記事が目に止まりました。 New Class of Vulnerability in Perl Web Applications ざっくりというと以下の様な内容です CGI.pmのparamメソッドの返り値をハッシュに突っ込んでいる箇所がある クエリ文字列に同名のパラメータを複数セットすると、配列値が返る 配列をハッシュに突っ込むことにより、別のキーの値が変更される 私はこの内容に興味を持ちましたので、以下に詳しく説明します。 PoC 元エントリにもPoCが出ておりますが、少し手をいれたものを以下に示します。 #!/usr/bin/perl use strict; use CGI; my $cgi = new CGI; my $loginname = 'smith'; my $password = 'a3k!sz9'; my %user = ('log
tl;dr Many SQL query builders written in Perl do not provide mitigation against JSON SQL injection vulnerability. Developers should not forget to either type-check the input values taken from JSON (or any other hierarchical data structure) before passing them to the query builders, or should better consider migrating to query builders that provide API immune to such vulnerability. Note: 問題の発見者による日
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはsongmuさんこと松木雅幸さんで、テーマはcronです。 なお本稿のサンプルコードは、本誌サポートサイトから入手できます。 cronとは? cronは指定日時にジョブの自動実行を行うジョブスケジューラです。UNIX系のOSであれば実装の違いこそあれ、ほぼ標準でインストールされています。 作業自動化や、タスクを自動実行したいなどといった場合にcronは避けては通れません。Perlでバッチ処理を書く際などに多くの人が活用していると思いますが、ベストプラクティスがわからず恐る恐る使っている人も多いのではないでしょうか。 本稿では、cron活用におけるベストプラクティスについてお話します。 cronの使いどころ cronの使い途は、主に次の3つが考えられます。 a.アプリケーションのジョブの実行 b.システムに関わる
RubyKaigi2009の最終日に同じ場所で開催された別のイベント「RejectKaigi2009」にて 「はじめてのRuby1.9プログラミング」と題して、記号Polyglotプログラミングの話をしてきました。 3分という限られた時間でありましたが、貴重な発表の機会を与えてくださりありがとうございます。 取り急ぎプレゼンで披露した記号Polyglotのプログラムを公開しておきます。 ■ hello.pl (という名前ですが、Perlの他にRubyやJavaScriptでも実行できるプログラムです) "#{",$/*"}";%#=();$^_^=’?“;">)~${`&&@`{;:+`[[‘,$^_^=’/?")-=^{(=!".=.!,!)&&>’,$^_^=’`-+|{!?“*.((-+({:^(_^’,$^_=”^’+@$@&’^’^.@%@’.’$^_^"";’.$^_^"",’
正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlやPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/
私の場合、開発環境では複数の言語のコードを書いたり実行したりします。 例えば perl, ruby, nodejs, python など。 これらを利用するために、plenv, rbenv, nodebrew, pyenv などを利用していました。 しかし、遅ればせながら anyenv というものがあると聞いたので、こっちに乗り換えました。 **envを2つ以上使ってる人はこれ使うのが良いと思います。おすすめ。 http://blog.riywo.com/2013/06/22/155804 https://github.com/riywo/anyenv インストールは簡単 README.md のとおりにやればOK # ------------------------------------------------------------------------ -# plenv +# an
日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと
Perl Oceanは,Lyo Kato氏により開発された,XMPPプロトコルを中心とするリアルタイムコミュニケーションフレームワークスイートです. XMPPはJabberとよばれていたインスタントメッセージングのためのプロトコルで,RFCに登録されており,Google Talk, Facebook Chat, MSN Live などで採用されている技術です. Perl Oceanが,他のJabber/XMPPライブラリやフレームワークと異なる点として,スタンドアロンのXMPPサービスを構築するのが主目的ではなく,既に運営されている,あるいはこれから作成する,Webサービスとインテグレーションすることを前提として作られています. Jabber/XMPPの概要をはじめ,Perl Oceanの特徴を紹介します.
祖母の白寿のお祝い 先日、満99歳(数えで100歳)になった祖母の白寿のお祝いをやった。 さすがに身体のあちこちに不具合が出てきており、そろそろ本格的に外出も難しくなってきたので祖母と一緒に家族で集まれるのはたぶんこれが最後だろう。 下は0歳から上は99歳までいるので、移動と諸々…
NAME FindBin - Locate directory of original Perl script SYNOPSIS use FindBin; use lib "$FindBin::Bin/../lib"; use FindBin qw($Bin); use lib "$Bin/../lib"; DESCRIPTION Locates the full path to the script bin directory to allow the use of paths relative to the bin directory. This allows a user to setup a directory tree for some software with directories <root>/bin and <root>/lib, and then the above
NAME Readonly - Facility for creating read-only scalars, arrays, hashes Synopsis use Readonly; # Deep Read-only scalar Readonly::Scalar $sca => $initial_value; Readonly::Scalar my $sca => $initial_value; # Deep Read-only array Readonly::Array @arr => @values; Readonly::Array my @arr => @values; # Deep Read-only hash Readonly::Hash %has => (key => value, key => value, ...); Readonly::Hash my %has =
ネーミング的には「即日融資可能なキャッシング」であろうとも、だからといって即日に審査まで完結されるとまでは言えないという現実に気を付けておくべきです。 債務を一本化すると言いますのは、何軒もの負債を一体化させ、返済先を1つの金融機関だけにすることを意図するもので、おまとめローン等と呼ばれているそうです。 「今回が初めてということでなんとなく不安」と言われる方もかなり見かけますが、難しいことは何一つありません。申し込みはわかりづらいところなし、審査もスピーディー、プラスハンドリングなども一歩一歩向上しているので、困惑するようなこともなくご利用いただけます。 種類によっては、年会費を払うものもありますので、キャッシングのためにクレジットカードを所有するというのは、そこまで一押しできる方法ではないと言っていいでしょう。 金利は何にも増して大事な要素ですから、これを念入りに比べてみれば、ご自身にと
PerlのAttributeについてのお勉強 このエントリの内容は結構適当です。 今更ですがCatalystなどで使われているattributeに興味を持ったので調べてみた。 やや日本人向けははてな勉強会の資料などにもあります。 今回は、関数のattributeについて。SCALARとかARRAYとかHASHはスルーです。 あと、モジュールなperlではやってません。超シンプルです。 今のPerlでは sub foo : baz {}のように記述出来ますが、通常ではエラーになってしまうのです。 デフォルトで対応しているattributesは(lvalue|method|locked|unique|shared)のみらしいので、bazは対応してないのでエラーが出ます。 perldocを見るとMODIFY_CODE_ATTRIBUTESって関数でattributesの処理をしているそうなので、
PerlのAttributeについてのお勉強 part2 ~Attribute::Handlersで作るプラグイン機構搭載ソフト~ さて、前回ではattributeの扱い方を軽く見てみました。 ただ、あんなコードを毎回書くのは面倒です。 そこでAttribute::Handlersモジュールの登場です。 概要としては、独自attributeの作成を簡単にしてくれます。 もちろん関数以外のattributeの作成が出来ますが、今回も関数のみに絞ります。 詳細はperldocしてください。 基本的な使い方も簡単で use strict; use Attribute::Handlers; sub ah_test1 : ATTR(CODE) { my($package, $symbol, $referent, $attr, $data, $phase) = @_; print "ah_test1:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く