[SQL]の検索結果
オープンソース掲示板ソフト「CommentPP 1.3」を
リリースしました。1.2からの変更内容は不具合、脆弱性の修正とランキング表示の改善です。1.2以前のバージョンには脆弱性があるので、1.3へのバージョンアップをお願...
オープンソース掲示板ソフト「CommentPP 1.3」をリリースしました。
1.2からの変更内容は不具合、脆弱性の修正とランキング表示の改善です。
1.2以前のバージョンには脆弱性があるので、1.3へのバージョンアップをお願いします。
データベース定義は変更ありません。1.2で使用していたデータをそのまま使用できます。
CommentPP 1.3 のダウンロード
日本語スレッド掲示板 - CommentPP
動作環境及びインストール手順
■動作環境
・PHPのバージョン PHP5.3.3以上
・MySQL MySQL5
・Smarty(テンプレートエンジン)
■インストールの手順
1.Smartyのインストール
CommentPP 1.3ではテンプレートエンジンとしてSmartyを使用しているためサーバーにSmartyをインストールする必要があります。
配布ファイルに含まれているsmartyフォルダをサーバーの非公開フォルダにアップロードします。
また、Smartyの最新のライブラリは http://www.smarty.net/download.php からダウロードすることができます。
最新のライブラリを使用する場合は、書庫ファイルをダウロードしたら解凍し、libsというフォルダがあることを確認し、以下の
ようにCommentPP 1.3のtemplatesフォルダ、templates_cフォルダをコピーします。
smarty/libs
smarty/commentpp/templates
smarty/commentpp/templates_c
2.MySQL(データベースサーバー)の設定
MySQLにユーザー及びデータベースを作成し、CommentPP 1.3で使用するのデータベースへのアクセス権限を設定します。
phpMyAdminなどからcommentpp.sqlを実行し、テーブルの作成と初期データの登録を行います。
3.設定ファイルの変更
・dnconnect.data
ホスト名、MySQLユーザーID、パスワード、データベース名の順番でコンマで区切って指定します。
・config.php
それぞれの設定値の意味は以下の通りです。
SESSION_NAME アプリケーションのセッション名
SMARTY_DIR Smartyライブラリのパス
TEMPLATE_DIR テンプレートファイルのパス
DB_CONNECT DB接続設定ファイルのパス
DEBUG_LOG デバッグログファイルのパス
SPAM_BLACKLIST ブラックリストファイルのパス
SITE_TITLE サイトのタイトル
SITE_DESCRIPTION サイトの記述
SITE_URL サイトのURL
LIST_TITLE コメント一覧のタイトル
RANKING_NUMBER ランキングに表示するスレッド数
ITEM_NUMBER コメント一覧に表示するコメント数
PAGE_NUMBER ページ数表示の指定
ANONYMOUS 匿名の投稿者の表示名
WEBMASTER_EMAIL 管理人のメールアドレス
MEMBERS_ONLY 会員制の指定 0:誰でも閲覧・投稿可能 1:会員制
以下の設定値についてはサーバーや運用サイトの状況に応じて変更する必要があります。
SMARTY_DIR サーバーの設定に応じて変更してください
TEMPLATE_DIR サーバーの設定に応じて変更してください
DB_CONNECT サーバーの設定に応じて変更してください
DEBUG_LOG サーバーの設定に応じて変更してください
SPAM_BLACKLIST サーバーの設定に応じて変更してください
SITE_TITLE 運用するサイトに応じて変更してください
SITE_DESCRIPTION 運用するサイトに応じて変更してください
SITE_URL 運用するサイトに応じて変更してください
WEBMASTER_EMAIL 運用するサイトに応じて変更してください
4.ファイルのアップロード
以下のファイル、フォルダをFTPクライアントを使用してサーバーにアップロードします。
スクリプトファイル(*.php)、スタイルシートファイル(*.css)、jsフォルダは公開フォルダ(public_html、wwwなど)に、
confフォルダはWebからアクセス出来ない非公開フォルダにアップロードしてください。
config.php index.php thread.php user.php sitemap.php util.php access.php tag.php comment.php request.php rss.php
style.css
jsフォルダ
confフォルダ
5..htaccess
「.htaccess」が無い場合は作成してindex.phpが最初に実行されるように以下の1行を追加します。
DirectoryIndex index.php index.html
2013年9月30日から2014年3月31日までの期間で実施されている、
ミクシィならびにその子会社がリリースしたWebアプリケーションやクライアントアプリケーション、スマホアプリなどの未知の
脆弱性を対象にした
脆弱性報告...
2013年9月30日から2014年3月31日までの期間で実施されている、ミクシィならびにその子会社がリリースしたWebアプリケーションやクライアントアプリケーション、スマホアプリなどの未知の脆弱性を対象にした脆弱性報告制度で、脆弱性の報告者には修正が完了した後、報酬として相当額のギフト券が贈られる。
報酬額は脆弱性が与える影響範囲や成立条件によって異なり、「XSSによって、重要なユーザデータの取得、削除などが可能」な問題」は12万5000円、「SQLインジェクションによって、重要なユーザデータの取得、削除などが可能」な問題は50万円、「リモートから、Webサーバ上で、任意のコードが実行可能」な脆弱性には100万円となっている。
脆弱性報告制度 mixi Developer Center (ミクシィ デベロッパーセンター)
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
ソフトバンククリエイティブ 著者:徳丸 浩
amazon.co.jpのカスタマーレビューを見る
powered by amalink
PHPで
XMLを扱う場合、Simple
XMLやDOMを使うというのが一般的なようですが、今回はそれらは使わずに単に出力したい
XML形式の文字列を生成してそれ出力するという
サンプルコードです。
サンプルコードの処理内容は、MyS...
PHPでXMLを扱う場合、SimpleXMLやDOMを使うというのが一般的なようですが、今回はそれらは使わずに単に出力したいXML形式の文字列を生成してそれ出力するというサンプルコードです。
サンプルコードの処理内容は、MySQLのテーブルからスレッドIDを取得してURLを生成し、Googleのウェブマスターツールに登録するためにSitemapプロトコルに対応したXMLを出力するというものです。
<?php
//------------------------------------------------------------------------------
// sitemap.php
//------------------------------------------------------------------------------
mb_language("Japanese");
mb_internal_encoding("UTF-8");
require_once('./config.php');
require_once('./util.php');
$siteurl = SITE_URL;
$itemlist = <<<EOL
<url>
<loc>$siteurl</loc>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
EOL;
// DB接続
$dbh =_db_connect();
$sql = "SELECT threadid FROM thread WHERE status = 1 ORDER BY threadid";
$result = mysql_query($sql, $dbh);
if (!$result) {
_error("SQL Error: " . mysql_error() . "\n");
}
while ($row = mysql_fetch_assoc($result)) {
$itemurl = SITE_URL . '?thread=' . $row['threadid'];
$itemlist .= <<<EOL
<url>
<loc>$itemurl</loc>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
EOL;
}
mysql_free_result($result);
$sitemap = <<<EOL
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
$itemlist
</urlset>
EOL;
mysql_close($dbh);
header("Content-Type: text/xml; charset=utf-8");
echo $sitemap;
exit();
?>
上記のようなベタなやり方でなく、SimpleXMLやDOMを使いたいという場合は、以下のページが参考になると思います。
PHP 開発者のための XML: 第 1 回 PHP での XML を 15 分で学ぶ
プロになるための PHPプログラミング入門
技術評論社 著者:星野 香保子
amazon.co.jpのカスタマーレビューを見る
powered by amalink
Drizzleは、
MySQLアーキテクトのBrian Aker氏が2008年7月に開始した、
MySQLをベースにWebアプリとクラウドインフラ向けの軽量SQL
データベースの開発を目指すプロジェクト。C++で実装されている。Drizzle is a commun...
Drizzleは、MySQLアーキテクトのBrian Aker氏が2008年7月に開始した、MySQLをベースにWebアプリとクラウドインフラ向けの軽量SQLデータベースの開発を目指すプロジェクト。C++で実装されている。
Drizzle is a community-driven open source project that is forked from the popular MySQL database.
The Drizzle team has removed non-essential code, re-factored the remaining code and modernized the code base moving to C++.
Drizzle
phpMyAdminは、PHPで作られたMySQL管理ツール。phpMyAdminを使用することでSQLを記述しなくても、ブラウザからMySQLを操作することができる。
phpMyAdmin is a free software tool written in PHP intended to handle the administration of MySQL over the World Wide Web. phpMyAdmin supports a wide range of operations with MySQL. The most frequently used operations are supported by the user interface (managing databases, tables, fields, relations, indexes, users, permissions, etc), while you still have the ability to directly execute any SQL statement.
phpMyAdmin
MySQL全機能バイブル ~現場で役立つAtoZ~
技術評論社 著者:鈴木 啓修 価格:3,675円 評価:★★★★★
- まさに「全機能」手元に置いて便利な本です。 ★★★★★
- アクセス解析に応用 ★★★★★
- MySQL ユーザ/管理者にお勧め ★★★★★
- 必携のリファレンス 兼 解説本 ★★★★★
powered by
amalink
PHPのプログラムからMySQLに接続し、SELECTでデータを取得する処理のサンプルプログラムです。あらかじめ
PHPMyAdminを使用して
MySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3...
PHPのプログラムからMySQLに接続し、SELECTでデータを取得する処理のサンプルプログラムです。
あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3件のレコードを登録しておきます。
CREATE TABLE `users` (
`userid` varchar(100) COLLATE utf8_bin NOT NULL,
`password` varchar(250) COLLATE utf8_bin NOT NULL,
`status` int(11) NOT NULL,
`auth` int(11) NOT NULL,
`username` varchar(250) COLLATE utf8_bin NOT NULL,
`address` varchar(250) COLLATE utf8_bin NOT NULL,
`mailaddr` varchar(100) COLLATE utf8_bin NOT NULL,
`hpurl` varchar(250) COLLATE utf8_bin NOT NULL,
`widgets` text COLLATE utf8_bin NOT NULL,
`createdate` datetime NOT NULL,
`lastupdate` datetime NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
insert into `users` (`userid`,`password`,`status`,`auth`,
`username`,`address`,`mailaddr`,`hpurl`,`widgets`,
`createdate`,`lastupdate`)
values('admin','1234','1','0','webmaster','',
webmaster100@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
`username`,`address`,`mailaddr`,`hpurl`,`widgets`,
`createdate`,`lastupdate`)
values('test1','5678','1','1','user 1','',
'test1@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
`username`,`address`,`mailaddr`,`hpurl`,`widgets`,
`createdate`,`lastupdate`)
values('test2','abcd','1','1','user 2','',
'test2@59log.com','http://59log.com/','',now(),now());
以下のPHPプログラム(文字コードはUTF-8)では、テーブル「users」からレコードを全て取得しHTMLページとして出力しています。
--- mysql_connect.php ---
<html>
<head>
<title>PHPでMySQLに接続するサンプルプログラム</title>
</head>
<body>
<?php
$domain = "localhost";
$user = "test";
$password = "abcd12";
$dbname = "testdb";
// MySQLに接続
$dbconnect = mysql_connect($domain, $user, $password)
or die(mysql_error());
mysql_select_db($dbname, $dbconnect)
or die(mysql_error());
$sql = "SELECT * FROM users";
// クエリの実行
$result = mysql_query($sql, $dbconnect);
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}
// 結果セットの行数を取得
$rows = mysql_num_rows($result);
echo $rows . '件のレコード<br />';
echo '<br />';
// 結果セットを表示
while ($row = mysql_fetch_assoc($result)) {
echo $row['userid'] . '<br />';
echo $row['username'] . '<br />';
echo $row['mailaddr'] . '<br />';
echo $row['hpurl'] . '<br />';
echo '<br />';
}
mysql_free_result($result);
mysql_close($dbconnect);
?>
</body>
</html>
Perlのプログラムから
DBI経由で
MySQLに接続し、SELECT文でデータを取得する処理のサンプルプログラムです。あらかじめphpMyAdminを使用して
MySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「user...
PerlのプログラムからDBI経由でMySQLに接続し、SELECT文でデータを取得する処理のサンプルプログラムです。
あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3件のレコードを登録しておきます。
CREATE TABLE `users` (
`userid` varchar(100) COLLATE utf8_bin NOT NULL,
`password` varchar(250) COLLATE utf8_bin NOT NULL,
`status` int(11) NOT NULL,
`auth` int(11) NOT NULL,
`username` varchar(250) COLLATE utf8_bin NOT NULL,
`address` varchar(250) COLLATE utf8_bin NOT NULL,
`mailaddr` varchar(100) COLLATE utf8_bin NOT NULL,
`hpurl` varchar(250) COLLATE utf8_bin NOT NULL,
`widgets` text COLLATE utf8_bin NOT NULL,
`createdate` datetime NOT NULL,
`lastupdate` datetime NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
insert into `users` (`userid`,`password`,`status`,`auth`,
`username`,`address`,`mailaddr`,`hpurl`,`widgets`,
`createdate`,`lastupdate`)
values('admin','1234','1','0','webmaster','',
webmaster100@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
`username`,`address`,`mailaddr`,`hpurl`,`widgets`,
`createdate`,`lastupdate`)
values('test1','5678','1','1','user 1','',
'test1@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
`username`,`address`,`mailaddr`,`hpurl`,`widgets`,
`createdate`,`lastupdate`)
values('test2','abcd','1','1','user 2','',
'test2@59log.com','http://59log.com/','',now(),now());
以下のPerlプログラムでは、テーブル「users」からステータスが1のレコードを全て取得、一旦配列に格納してから標準出力に出力しています。
検索条件の設定にはプレースホルダを使用し、DB処理でエラーが発生した場合は、例外処理に飛んでエラーの内容が出力されるように、RaiseErrorに1を設定しています。
--- mysql_select.pl ---
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $data_source = "DBI:mysql:testdb"; # 接続先はtestdb
my $username = "test"; # データベースへのアクセス権限を持つユーザーを指定
my $password = "abcd"; # そのパスワード
my $status = 1;
my @recs = ();
eval {
my $dbh = DBI->connect($data_source, $username, $password,
{RaiseError => 1, PrintError => 0});
my $sql = "select * from users where status = ?";
my $sth = $dbh->prepare($sql);
$sth->execute($status);
while (my @rec = $sth->fetchrow_array) {
push @recs, [@rec];
}
$sth->finish;
$dbh->disconnect;
};
if ($@) {
print "Error : $@\n";
}
foreach my $rec (@recs) {
print join(",", @{$rec}), "\n";
}
SQLインジェクション(SQL Injection)とは、Webアプリケーション開発者の意図しない悪意のあるSQL文やその一部を入力して、不正にデータベースを操作することを目的とした攻撃のことで、多くの場合データベースを不正に書き換えてコンテンツを改ざんし、ウェブ閲覧者にマルウエアの侵入を試みるプログラム (スクリプト)を実行させようとする。
SQLインジェクションの対策としては、入力値には半角英数字のみを許可するよう制限する方法や、SQLで使える特殊文字をエスケープして対処するという方法が一般的。
SQL インジェクション攻撃とその対策
今夜分かるSQLインジェクション対策
Hacking: 美しき策謀 ―脆弱性攻撃の理論と実際
オライリージャパン 著者:Jon Erickson 価格:3,360円 評価:★★★★★
- これは確かにおもしろい ★★★★
- 究極のテクニック集です ★★★★★
- 良い! ★★★★
- 技術背景がわかります ★★★★
- 真のハッカーとは ★★★★
powered by
amalink
PerlからDBIモジュールを使って
MySQLのテーブルに
INSERT文で
シングルクオートの含んだレコードを追加するには、次のようにprepare メソッドでプレースホルダを使ったステートメントハンドルを取得して、execute メソ...
PerlからDBIモジュールを使ってMySQLのテーブルにINSERT文でシングルクオートの含んだレコードを追加するには、次のようにprepare メソッドでプレースホルダを使ったステートメントハンドルを取得して、execute メソッドで値を渡してやればいいらしい。
my $sth = $dbh->prepare("insert into mytable(foo,bar,baz) VALUES(?,?,?)");
$sth->execute($foo, $bar, $baz);
INSERT文に限らずSQL文で変数値を渡す場合は、プレースホルダを使えばいいのか。
mysqlデータベースにinsertできない
DBI/DBDの使い方
Perl で、バイナリデータを MySQL に登録する
実践ハイパフォーマンスMySQL 第2版
オライリージャパン 著者:Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz,Derek J. Balling 価格:4,830円 評価:★★★★★
powered by
amalink
VoltDBは、高速、拡張性、ACID遵守などを特徴とするインメモリの
SQLデータベース。GPLで公開される
オープンソースのCommunity Editionとサブスクリプション形式で提供される有償版がある。VoltDB
VoltDBは、高速、拡張性、ACID遵守などを特徴とするインメモリのSQLデータベース。GPLで公開されるオープンソースのCommunity Editionとサブスクリプション形式で提供される有償版がある。
VoltDB
|< 先頭へ < 前へ 1 2 3 4 5 次へ >
アクセスランキング
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (47 PV)
- 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (11 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (6 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (5 PV)
- MT4向け1ポジアノマリーEA「DAY TRADING」 オープンソースライセンス(GPL3) #ドル円 (4 PV)
- MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (4 PV)
- Google News (グーグルニュース)日本版 (4 PV)
- 2chまとめサイト - 痛いニュース(ノ∀`) (3 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (3 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
- 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (562 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (436 PV)
- 究極の爆益ゴールドナンピンマーチンEA「Extreme MT5」 (435 PV)
- [PR]noteで販売している自作EAの一覧 (168 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (137 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (92 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (80 PV)
- MT4向け1ポジアノマリーEA「DAY TRADING」 オープンソースライセンス(GPL3) #ドル円 (59 PV)
- 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (57 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (49 PV)
アクセス統計
ディレクトリ
関連サイト