目次
Ecshop、Discuz! 等开源产品的局限,ecshopdiscuz
ホームページ php教程 php手册 Ecshop、Discuz! 等开源产品的局限,ecshopdiscuz

Ecshop、Discuz! 等开源产品的局限,ecshopdiscuz

Jun 13, 2016 am 08:55 AM
PHPプログラマー

Ecshop、Discuz! 等开源产品的局限,ecshopdiscuz

记得今年年初,我初次接触Discuz!和Ecshop时,一阵阵地惊叹:成熟度这么高的产品,居然是免费的。我们这些搞传统软件开发的要怎么活?另外也奇怪,做这些产品的公司,他们要怎么活?

我公司的网站,原型正好是用Ecshop和Discuz!,到开发方移交给我们后,我们做二次开发,深入了解了其代码,早期的疑惑才有了答案。

可以说,这些产品,都无法支持真正严肃的应用环境。

1)所有的数据库访问都不用mysqli连接,因此无法用prepared statement,而全部用拼接方式。

这些系统,对数据库(主要都是mysql)的访问,全部采用sql拼接方式。举一个Ecshop的例子:

   <span>$w_openid</span> = <span>$db</span> -> getOne("SELECT `wxid` FROM `wxch_user` WHERE `wxid` = '<span>$openid</span>'");
ログイン後にコピー

或类似

   <span>$wxch_user_sql</span> = "INSERT INTO `<span>$thistable</span>` ( `user_name`,`password`,`field3`,`field4`) VALUES ('$variable1','<span>$variable2</span>','value3','value4')"<span>;
   </span><span>$db</span> -> query(<span>$wxch_user_sql</span>);
ログイン後にコピー

这种语句,偶尔出现倒也可以理解,如果所有的地方都是这样(正如Ecshop),则应该出于对数据库只有入门水平的人手里。因为他完全没有使用prepared statement的概念。

所以,这种系统几个人用应该是快如闪电,并发量一大,后台数据库可能被搅成一锅粥了。

正确的连接数据库的方法应该是:

 <span>$mysqli</span> = <span>new</span> mysqli("server", "username", "password", "database_name");
ログイン後にコピー

而不是

$conn = mysql_connect('server','username','password') or die ("数据连接错误!!!");
ログイン後にコピー

 正确的sql语句应该是:

<span>$stmt</span> = <span>$mysqli</span>->prepare("INSERT INTO table (column) VALUES (?)"<span>);

</span><span>$stmt</span>->bind_param("s", <span>$safe_variable</span><span>);

</span><span>$stmt</span>->execute();
ログイン後にコピー

而不是前面那样。

 

2)系统安全性极差

因为不用prepared statement,只要编程人员不注意,sql injection可以说到处都有可能。但看看他们的代码,可以说压根不注意。因为这些系统,对用户输入几乎不用转义。

对于已经很烂的代码,正确的用法是应该有第二行:

<span>$unsafe_variable</span> = <span>$_POST</span>["user-input"<span>];
</span><span>$safe_variable</span> = <span>mysql_real_escape_string</span>(<span>$unsafe_variable</span><span>);

</span><span>mysql_query</span>("INSERT INTO table (column) VALUES ('" . <span>$safe_variable</span> . "')");
ログイン後にコピー

但在这些系统里,上面的第二行很少看到。

这样造成的问题就是,针对这些系统的机器人极多。基本上你的论坛上线不久很快就被机器人发的水贴、广告贴盯上了。

 

本人对这些系统研究还很肤浅,不过看到这两条,就已经明白,这种系统是供学习用的。开发这些产品的公司,他们的水平很高,不过高质量的代码应该是用在了商业性收费的产品上。大家别以为可以捡到便宜。

 

转载请注明出处:cnblogs上的海边的骆驼博客。原博文地址:http://www.cnblogs.com/yingjiang/p/4750408.html 

 

 

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

最初から最後まで: 完璧な PHP プログラマーの履歴書の書き方 最初から最後まで: 完璧な PHP プログラマーの履歴書の書き方 Sep 10, 2023 pm 04:21 PM

完璧な PHP プログラマーの履歴書の書き方 競争の激しい就職市場では、求職者にとって優れた履歴書は非常に重要です。 PHP プログラマーにとって、完璧な履歴書を書くことは特に重要です。履歴書は自分のスキルや経験をアピールする手段であるだけでなく、雇用主の注目を集める鍵でもあるからです。この記事では、完璧なPHPプログラマーの職務経歴書の書き方を最初から最後まで詳しく解説します。ステップ 1: 簡潔で魅力的な履歴書テンプレートを選択する 簡潔で魅力的な履歴書テンプレートを選択することは、履歴書を書く最初のステップです。

就職活動の成功率を向上させる: 優れた PHP プログラマーの職務経歴書を書くためのヒント 就職活動の成功率を向上させる: 優れた PHP プログラマーの職務経歴書を書くためのヒント Sep 10, 2023 pm 06:30 PM

就職活動の成功率を向上させる: 優れた PHP プログラマーの職務経歴書を書くためのヒント 現代社会において、就職活動はすべての卒業生にとって直面する重要な課題となっています。仕事に応募するとき、履歴書は最も重要な部分です。優れた履歴書があれば、面接に勝ち残ることができ、さらには就職できるかどうかも決まります。特に PHP プログラマーのような競争の激しいポジションでは、優れた履歴書をどのように書くかがすべての求職者にとって重要な問題となっています。以下では、優れた PHP プログラマーの職務経歴書を書くためのヒントをいくつか紹介します。

雇用主に好印象を与えるPHPプログラマーの履歴書の書き方 雇用主に好印象を与えるPHPプログラマーの履歴書の書き方 Sep 08, 2023 am 08:19 AM

雇用主に好印象を与える PHP プログラマーの履歴書の書き方 競争の激しい就職市場では、優れた履歴書を書くことが特に重要です。 PHP プログラマーとしての履歴書には、素晴らしい職歴とスキルに加えて、プログラミングへの愛情と確かな専門知識も反映されている必要があります。この記事では、雇用主の目に映える PHP プログラマーの履歴書を書くのに役立ついくつかのヒントとコード例を紹介します。簡潔かつ明確な個人情報 履歴書の個人情報セクションには、名前、連絡先情報、個人のウェブサイトを含める必要があります

PHP プログラマーの履歴書の目を引くヒント: 他の候補者より目立つ方法 PHP プログラマーの履歴書の目を引くヒント: 他の候補者より目立つ方法 Sep 12, 2023 am 10:16 AM

PHP プログラマーのための目を引く履歴書のヒント: 他の候補者より目立つ方法 インターネット業界の急速な発展に伴い、PHP プログラマーも就職市場で人気の職種の 1 つになりました。しかし、キャリア開発の方向として PHP を選択する人が増えており、競争が激化しています。このような状況下で、どのようにして履歴書を目立たせ、雇用主の目に留まるようにするかは、すべての PHP プログラマーが考える必要がある問題です。まず、優れた履歴書では、自分のスキルを明確かつ簡潔に示す必要があります。

PHP プログラマーの高収入反撃への道 PHP プログラマーの高収入反撃への道 Sep 09, 2023 am 09:22 AM

PHP プログラマーのための高収入逆襲への道 インターネットの急速な発展に伴い、コンピューター サイエンスの分野での需要は増加し続けています。この時代、プログラミングスキルを必要とする人材が最も求められています。一般的に使用されるプログラミング言語として、PHP はプログラマーに高収入の反撃の道を提供します。この記事では、PHP プログラマーが PHP と関連テクノロジを学習することで高収入の反撃にどのように移行できるかを紹介し、いくつかのコード例を添付します。 1. PHP の基礎知識を習得する 優秀な PHP プログラマーになるためには、まず PHP の基礎知識を習得する必要があります。

書き方のヒントを探る: 魅力的な PHP プログラマーの職務経歴書の書き方 書き方のヒントを探る: 魅力的な PHP プログラマーの職務経歴書の書き方 Sep 09, 2023 pm 04:09 PM

書き方のヒントを探る: 説得力のある PHP プログラマーの履歴書の書き方 今日の競争の激しい雇用市場では、PHP プログラマーにとって説得力のある履歴書が特に重要です。優れた履歴書は雇用主の目に留まるだけでなく、あなたのスキルや経験をアピールすることもできます。この記事では、優れた PHP プログラマーの履歴書を作成するのに役立ついくつかの書き方のヒントを、専門的な能力を強調するコード例とともに説明します。簡潔かつ明確な形式 履歴書の形式は、雇用主があなたの関連情報をすぐに確認できるように、簡潔かつ明確である必要があります。

プロフィールを改善する: あなたを際立たせる PHP プログラマーの履歴書の書き方 プロフィールを改善する: あなたを際立たせる PHP プログラマーの履歴書の書き方 Sep 10, 2023 pm 05:12 PM

今日の競争の激しい就職市場において、大勢の求職者の中でいかに目立つかが非常に重要な課題となっています。特に PHP プログラマーの場合、優れた履歴書は面接に受かるかどうかに直接影響します。この記事では、あなたを際立たせるPHPプログラマー履歴書の書き方を詳しく紹介します。まず、優れた職務経歴書には、個人情報、職務上の意図、学歴、職歴、スキルと専門知識、個人のプロジェクトの経験といった重要な部分が含まれている必要があります。部分ごとに進めていきます

人事担当者とつながるための重要なステップ: PHP プログラマーの履歴書に自分の価値を反映する方法 人事担当者とつながるための重要なステップ: PHP プログラマーの履歴書に自分の価値を反映する方法 Sep 08, 2023 am 11:30 AM

HR とつながるための重要なステップ: PHP プログラマーの履歴書に自分の価値を反映する方法 HR は、採用プロセス中の忙しいながらも短時間の間に、履歴書を通じて候補者を評価し、選考します。大勢の求職者の中で目立って人事部の注目を集めるには、履歴書で自分の価値と能力を証明する必要があります。 PHP プログラマーの場合、履歴書で技術的能力とプロジェクトの経験を強調することが重要です。ここでは、いくつかの重要な要素と、コード例を通じて価値を実証する方法を示します。履歴書のスキル欄にある技術スキルのリスト

See all articles