タグ

languageに関するsirouto2のブックマーク (764)

  • [セキュリティ]画像へのPHPコマンド挿入 ― T.Teradaの日記

    だいぶ時間がたってしまいましたが、大垣さんの以下のブログにコメントしたことなどをまとめます。 画像ファイルにPHPコードを埋め込む攻撃は既知の問題 – yohgaki's blog アップロード画像を利用した攻撃についてです。 攻撃の概要 画像ファイルにPHPコマンドを挿入する攻撃は、大きく2種類に分けることができます。 1つは、画像のアップロード機能を持つサイト自身を狙う攻撃です。PHPで開発されており、任意の拡張子のファイルのアップロードを許すサイトでは、拡張子がphpなどのファイルをアップロードされる恐れがあります。 拡張子がphpなどのファイルに仕込まれたPHPコマンドは、そのファイルにHTTP/HTTPSでアクセスされた際に実行されます。攻撃者は、アップロードファイルを通じて、画像が置かれるWebサーバ上で任意のコマンドを実行することできます。 この脆弱性は、アップロード可能なフ

  • 連載:Ajax時代のJavaScriptプログラミング再入門 ― @IT

  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

  • ワードサラダ技術について

    後半部分が重要で、未来の挙動が現在の値だけで決定され、過去の挙動と無関係である ということです。 さて、実例です。たとえば次の文章を考えてみます。 「通信販売大手セシールは9日、生命保険の販売に格参入する方針を明らかにした。」 まず形態素解析するとこんな感じになります。 通信 名詞,サ変接続,*,*,*,*,通信,ツウシン,ツーシン 販売 名詞,サ変接続,*,*,*,*,販売,ハンバイ,ハンバイ 大手 名詞,一般,*,*,*,*,大手,オオテ,オーテ セシール 名詞,固有名詞,組織,*,*,*,セシール,セシール,セシール は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9 名詞,数,*,*,*,*,9,キュウ,キュー 日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 、 記号,読点,*,*,*,*,、,、,、 生命 名詞,一般,*,*,*,*,生命,セイメイ,セイメイ 保険 名詞,一般

  • 窓の杜 - 【NEWS】SQL文をGUIで作成できるフリーのデータベース開発環境「黒猫 SQL Studio」

    GUIによるSQL文の作成など、さまざまな開発支援機能を備えるSQL開発環境「黒 SQL Studio」v1.1.7.413が6月4日に公開された。Windows 2000/XPに対応しており、個人使用・業務にかかわらずフリーソフトとして利用可能。現在作者のホームページからダウンロードできる。 「黒 SQL Studio」は、SQL文の作成やテストを行える汎用のデータベース開発環境。ソフト上からOLE DB接続またはODBCドライバに対応する各種データベースへ直接接続可能で、作成したSQL文を実際にテスト実行できる。画面は3ペイン構成で、左側には複数のSQLソースファイルを管理できるファイラー、中央には複数ファイルをタブで切り替えて表示できるエディター、右側には接続したデータベースの構造をツリーとリストで表示する“データベースエクスプローラ”が表示される。 SQL文の作成時は、さまざ

  • てっく煮ブログ - 四則演算を JavaScript で実装する

    aki noteGoogle 電話面接を受けました orz (いまは消えてるけど)にて割り算が壊れました。自分で実装してみてくださいという質問が紹介されていた。せっかく(?)の機会なので、割り算だけでなく、四則演算を全部壊してみて、JavaScript で実装して見ることにした。JavaScript を選んだのは、コンパイル不要、ビット演算がある、Firebug で手軽に確認できる、という理由から。それ以上の深い意味はない。ということで、次のような問題に一般化してみた。問い四則演算を JavaScript で実装しなさい。演算子は ==、!= およびビット演算子のみ使ってよいものとします。補足例えば、for 文で for(var i = 0; i { // ... } と書くためには、++ 演算子は次のように定義できる。 function increment(i){ var c =

  • javascriptを理解するためのたった2つの大切なこと

    9割ぐらいはハッシュ何がハッシュなのかjavascriptで存在するほとんどのオブジェクトの実体はハッシュだよ。 var arr = [0,1,2,3]; とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。 これは var has = {0:0,1:1,2:2,3:3}; と基的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。 ためしに arr[4] = 4; arr['x'] = 'string'; arr[-1] = -1; としてみよう。 Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。 でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。 それどころかarr.xで'string'がかえってくるんだ。 別の例を

    javascriptを理解するためのたった2つの大切なこと
  • JavaScriptの巧い書き方 - Archiva

    Make a note of it: Web tech, montaineering, and so on. Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。 Webに言語は数あれど、特に玉石混淆の激しいJavascriptの書き方について纏めてみた。間違い指摘大歓迎! 発端はYahoo!の Eric Miraglia による、YUI 式モジュールの作り方をまとめた記事。ざっくりまとめると、以下の手順になる。 YAHOO.myProject.myModule = function () { //"private" variables: var myPrivateVar = "I can be accessed only from within YAHOO.myProject.myModule."; //"private" m

  • CodeZine:OpenIDを使ってみよう(openid, 認証方法, Perl)

    はじめに OpenIDは最近非常に注目が高まっている認証技術の一つです。ここでは、OpenIDを利用したPerlのサンプルを通じてOpenIDのメカニズムに触れていきたいと思います。必要な環境 Perl 5.8以上が動作する環境が良いと思います。基動作の確認はMac OS Xを利用しましたサンプルの紹介 早速サンプルコードの「openid-test.cgi」を見ることにしましょう。このサンプルはOpenIDを利用した簡易ログインページです。 #!/usr/bin/perl use strict; use warnings; use CGI; use Net::OpenID::Consumer; #use LWPx::ParanoidAgent; use LWP::UserAgent; my $query = CGI->new; $query->charset('utf-8

  • PHP4なスクリプトをPHP5へ移行する際に発生する7つの問題 | Shin x blog

    2007/11/13: 3.と4.が同じ内容となっていましたので、4.の内容を変更しました。 ここ最近PHP4.1.2で稼働していたシステムをPHP5.1.6へ移行しています。 移行の際に発生した問題とその対応をメモしておきます。 ちなみに全ての内容がPHP4->PHP5で必要なものではないです。PHP4も4.1/4.2/4.3/4.4の間でちょこちょこ変わっているので、一部の内容はPHP4間の移行でも修正が必要になります。またPHP4.4に適応しているスクリプトをPHP5へ移行するなら修正内容は少なくなります。 1.Notice: Only variable references should be returned by reference 「function &method()」と定義しているメソッドでスカラー値を返すと発生します。 <?php class Hoge { functi

  • 最速インターフェース研究会 :: ハッシュキーの存在チェックを超高速に省メモリで行う方法

    リンク先まとめて登録できる機能が付きました。 http://blog.livedoor.jp/staff_reader/archives/51034585.html かとゆー家断絶からリンク張られてるサイトをまとめて登録とか http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww6.ocn.ne.jp%2F~katoyuu%2F&extract=on スタートマック体験モニタのブログをまとめて登録とか http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww.apple.com%2Fjp%2Farticles%2Fstartmac_monitor_2%2Fwinners.html&extract=on できます。 リンク先の全件にAuto Discoveryをかけると、

  • ウノウラボ Unoh Labs: Feedcreatorのご紹介

    yamaokaです。 PHPRSSフィードを出力する場合、 皆さんはどうされているでしょうか。 Smartyなどの テンプレートエンジンを利用して自前で組み立てるのもいいですが、 RSSフィード生成用のライブラリを使うと便利です。 Feedcreatorは、 SourceForge.netで 開発されているPHPRSSフィード生成ライブラリです。 FeedCreator.class.phpを ベースにして開発されています。 RSS 0.91/1.0/2.0、Atom 0.3/1.0のフォーマットにそれぞれ対応しています。 また、PIE 1.0やOPML 1.0などにも対応。ライセンスはLGPLです。 ライブラリをダウンロードして展開すると、 「official_demo.php」というファイルがあるので目を通しておきましょう。 おおよその処理の流れがつかめるかと思います。 利用例 ライ

  • ウノウラボ Unoh Labs: MySQL5からのインデックス結合で1テーブル複数インデックスを使う

    komagataです。 Webアプリケーションのパフォーマンスの大半はデータベース、特にインデックスの使われ方にかかっている気がします。 仕事でもMySQLをよく使いますが、MySQLでは1テーブルに付き1インデックスしか使われません。PostgreSQLなどと比べてそのことが気になってMySQLでのパフォーマンスチューニングに全く自信が持てませんでした。 オライリーの実践ハイパフォーマンスMySQLには下記のように書かれています。 実際、UNIONを除き、MySQLでは、1つのクエリを実行するとき、1つのテーブルに付き1つのインデックスしか使用できない。この事実は、繰り返し述べるに値するほど重要である。「MySQLでは、1つのクエリを実行するとき、1つのテーブルにつき1つのインデックスしか使用できないのである。」 また、その制約を考えたクエリの書き方として下記の様に書いてあります。 my

  • 「リファクタリングが必要」という兆候 - Do You PHP はてブロ

    リファクタリングはPHPに限った話ではないですが、PHPを使っている場合に「どういった兆候が現れるとリファクタリングした方が良いか」といった話がまとめられています。 I have had to go through a php application recently which has given me more than one headache and has required me to use all my possible patience. あまり目新しいものはないかも知れませんが、以下要点を訳してざっとまとめてみました。間違いがあれば指摘してください :-) グローバル変数 グローバル変数の上書きしている アプリケーション全体でスーパーグローバル変数($_REQUEST、$_POST、$_GET)を使っている 大量のブラケット 以下のようなコード <?php $variab

    「リファクタリングが必要」という兆候 - Do You PHP はてブロ
  • サイトのチェックボックス、ラジオボタンを可愛い感じにするためのJavaScriptライブラリ:phpspot開発日誌

    サイトのチェックボックス、ラジオボタンを可愛い感じにするためのJavaScriptライブラリ 2007年06月04日- chris erwin dot com - CRIR: Checkbox Radio Input Replacement This will allow you to style the label however you wish using CSS, and the actual input control will be hidden. サイトのチェックボックス、ラジオボタンを可愛い感じにするためのJavaScriptライブラリ。 ライブラリを使うことで、次のようなフォームを実現することが出来ます。 必要なCSSとライブラリを読み込んで、input に class をあてるぐらいの簡単な方法でフォームの変更が可能です。 CSSデザインなので画像を変更で自分好みのフォ

  • ie以外でもクリップボードが使えるsetClipboard.js

    ie以外でもクリップボードが使えるsetClipboard.js IE以外のブラウザでもクリップボードにコピーが簡単にできるjavascriptライブラリを作成しました。 IEにはclipboardData.setDataという関数があり、クリップボードへのコピーなどが簡単にできますが、IE以外のブラウザはクリップボードにアクセスする機能がありません。 そこでflashプレーヤ―のsetClipboard関数を利用してクリップボードにコピーするライブラリです。 まずは関連ファイルをダウンロードします。 ダウンロード(setClipboard.zip) 解凍してできる『setClipboard.js』と『setClipboard.swf』は同じディレクトリにアップしてください。 header要素などでsetClipboard.jsを読み込みます。 <script type="text/jav

    ie以外でもクリップボードが使えるsetClipboard.js
  • RailsでWikiシステムを作成する:CodeZine

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

  • Open Tech Press | MySQLデータのバックアップ方法

    2007年5月31日10:53 Tom-Adelstein、Bill-Lubanovic(2007年5月29日(火)) ファイルやディレクトリのバックアップは比較的簡単だが、データベースのバックアップとなると、いくつか特別な工夫を施す必要がある。ここではMySQLを取り上げているが、同じ原理はPostgreSQLやその他のリレーショナルデータベースにもあてはまる。 稿は、最近O’Reillyから出版された書籍『 Linux System Administration 』の抜粋。 MySQLサーバを休みなく稼働させ続ける必要がないなら、以下に示すような圧縮なしのオフラインバックアップ手法が手っとり早い。 MySQLサーバを停止させる。 # /etc/init.d/mysqld stop MySQLのデータファイルおよびディレクトリをコピーする。例えば、MySQLのデータディレクトリ/var

    Open Tech Press | MySQLデータのバックアップ方法
  • ウノウラボ Unoh Labs: 簡単Ajaxライブラリ「jQuery」と便利なプラグインたち

    こんにちわ、hideです。 最近は、jQueryというJavaScriptライブラリを使ってAjax関連の処理を書くことが多いです。なんといっても軽量で高速、XPathによる要素の指定がとても便利です。今回は、その便利なjQueryをもっと便利にするプラグインをいくつか紹介します。 ThickBox LightBoxのようなもので、画像の他にHTMLの表示も可能です。難点は、$()を使って書かれているので、他のライブラリと混ぜて使えないこと。僕はソース内の$()をすべてjQuery()に書き換えて使っています。 JSON for jQuery AjaxでJSONを取得して、処理できるようにするプラグイン。これは必須とも言っていいと思います。CallBack関数を指定してのJSONPも簡単。 BlockUI Plugin 画面の一部や全体を半透明のレイヤーで覆って操作できなくするものです

  • 超簡単にソートやリサイズ、その場編集が可能なテーブルを作成できるJavaScriptライブラリ「TableKit」:phpspot開発日誌

    超簡単にソートやリサイズ、その場編集が可能なテーブルを作成できるJavaScriptライブラリ「TableKit」 2007年05月31日- TableKit TableKit is a collection of HTML table enhancements using the Prototype framework. 超簡単にソートやリサイズ、その場編集が可能なテーブルを作成できるJavaScriptライブラリ「TableKit」。 次のようなExcel風テーブルが簡単に作れます。 どれぐらい簡単か、というと、必要なJavaScriptを読み込んだあと、table の class に次のように値を指定するだけ。 <table class="sortable resizable editable"> 最低幅の指定など、動作に関するカスタマイズも豊富なオプションによって指定可能です。 こ