特定のファイルがシンボリックリンクを貼られているかどうかを知りたい。
ポイントはfind -type lとreadlink
find -type l でシンボリックリンクのファイルを探す。readlinkでリンク元を探す。
find <検索対象のディレクトリ> -type l | while read LINK; do readlink "$LINK" | grep -Fx <検索対象のファイル> >/dev/null && echo "$LINK" done
特定のファイルがシンボリックリンクを貼られているかどうかを知りたい。
ポイントはfind -type lとreadlink
find -type l でシンボリックリンクのファイルを探す。readlinkでリンク元を探す。
find <検索対象のディレクトリ> -type l | while read LINK; do readlink "$LINK" | grep -Fx <検索対象のファイル> >/dev/null && echo "$LINK" done
fileコマンドで引数を画像ファイルにすると、画像のサイズまで出てきてびっくりしました。
$ file 01.gif 01.gif: GIF image data, version 89a, 468 x 60
どぅるぱる
PHPにしては綺麗でSecureなCMS
Drupalの脆弱性
select * from users where name = 'admin' and status = 1
name==user1&name==user2
select * from users where name = 'user1' and name = 'user2' and status = 1
バインド値
連想配列が使えるので、キー名をつけるとプレースホルダーにキー名がつく
プレースホルダーはエスケープできない
空白つきのキー
ログイン前SQLインジェクション
https://www.jpcert.or.jp/at/2014/at140042.html
ライブSQLインジェクション
→バリデーションしようや
MySQLのサポートエンジニア
リレーショナルモデルにバリデーションはない
ないが、constraintはある(制約)
評価した結果真となる条件式
ドメインの要素数が膨大になる
列挙できるがデータサイズが大きいもの
→これらをドメインとして表現するのは不可能
テーブル+外部キー制約
制約で、テーブルに格納するデータをフィルタリングする
データの危険性を鑑み、バリデーションが必要なのでは?
この2つはちゃんと対応していない
リレーショナルモデルであつかえないデータがある
プロシージャ内でprepareするべからず
Bean Validation
JavaBeansのバリデーションのためのJavaのソフトウェアフレームワーク
JSR
あらかじめよくつかうチェックが用意されている(constraints) POJOに対してテストが書ける
など
@NotNull 単項目チェック
@Test
@RequestMapping
Sledge::Plugin::Validator
http://sourceforge.jp/cvs/view/sledge/Sledge-Plugin-Validator/
Modelが通らなかったらException
頑張ってjQueryでぶっこむのがしんどい
コントローラーでのバリデーションを懇切丁寧にやる必要がなくなってきた
Client
Model(通らなかったらExceptionをthrow)
JSONを受け取ってJSONで返す
JS書く人のほうがスケジュールがカツカツになるので保護するひつようがあったりする
入り口と出口でバリデーション
JSONの入力はBeanValidation
コードでどうにかしたほうが楽
Javaでやることが多くて、JSやObjective-Cしか書けない人にとっても読んでくれる気がする
(JSON Schemaよりも読みやすいかも)
Perlだと拒否反応出る人多いらしい
今の時代頑張ってエラーの状態を細かくHTMLで表示するより機械的に出してあげたほうがいいんじゃないかなっていうやつ
JSON Schemaとか手で書くのはばかばかしい
クライアント側のコードを補完きかせてバリバリ書く
社内向けのやつだったらそのクラスをそのまま依存関係に追加できて楽
最近はmicroservices全盛 時代はBeanValidation
jQuery Validatoin Plugin
QUnit
jQuery Validation Plugin
つらいので通し番号をつけてごまかす
チャットワークでJSを書いている
フロントエンドValidationは安全ではない
ロジックの分散
ロジックでそれぞれ実装することも
専用APIを作る
Validatoinをどっちでやるの?サーバサイド?クライアントサイド?
RailsのValidation
発表枠が空いていたのでLTをやりました。
LTで使用した資料はこちらです。
自作JSライブラリでvalidationをごにょごにょする! @shigemk2
徳丸先生やら漢のコンピュータ道の方やらそうそうたるメンバーが集まる恵まれた環境からクソみたいなLTをやってしまったことを比較的後悔はしています。
全体的なテーマとして、
というアーキテクチャ寄りのとても濃い内容で、良い知見になったと思います。僕の技術力と頭の回転の遅さで、それが明日からすぐ使えるかというとかなりクエスチョンマークがつきますが、アーキテクチャの話はためになると思いました。それはノウハウの近視眼的な尺稼ぎじゃなくて数年後役に立つ知見ですから。
で、僕の話は仕事でバリデーションJSライブラリを自作したという話をしました。
「バリデーションは正規表現だ!」という特大のマサカリが飛んできそうなテーマをゴリ押しして喋りましたが、正規表現は複雑でtypoで死にそうなのでライブラリに押し込んだほうがいいという初心者レベルのアーキテクチャの話をしました。
なお、8月からずっと毎月1回以上はどこかしらの勉強会で発表するという縛りを設けており、Twitterを眺めてみても「前に○○で発表した人だ」というつぶやきが散見されるので、僕のHNは「しげえむけーつー」じゃなくて「しげまーくつー」であるという認識が少しずつ広まっていっているのではないかと思いました。
織田裕二のコスプレは控えています。