목차
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 Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

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 프로그래머는 취업 시장에서도 인기 있는 직위 중 하나가 되었습니다. 그러나 점점 더 많은 사람들이 경력 개발 방향으로 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 프로그래머 이력서를 작성하는 방법에 대해 자세히 소개합니다. 우선, 좋은 이력서에는 개인 정보, 직무 의도, 학력, 업무 경험, 기술 및 전문 지식, 개인 프로젝트 경험 등 중요한 부분이 포함되어야 합니다. 우리는 부분적으로 갈 것입니다

HR과 연결하기 위한 핵심 단계: PHP 프로그래머 이력서에 귀하의 가치를 반영하는 방법 HR과 연결하기 위한 핵심 단계: PHP 프로그래머 이력서에 귀하의 가치를 반영하는 방법 Sep 08, 2023 am 11:30 AM

HR과의 연결을 위한 핵심 단계: PHP 프로그래머 이력서에 귀하의 가치를 반영하는 방법 HR은 채용 과정 중 바쁘지만 간략하게 살펴보는 동안 이력서를 통해 후보자를 평가하고 심사합니다. 수많은 구직자들 사이에서 눈에 띄고 HR의 관심을 끌기 위해서는 이력서에서 자신의 가치와 능력을 입증해야 합니다. PHP 프로그래머의 경우 이력서에서 기술적인 능력과 프로젝트 경험을 강조하는 것이 중요합니다. 다음은 몇 가지 핵심 요소와 코드 예제를 통해 가치를 입증하는 방법입니다. 이력서 기술 섹션의 기술 목록

See all articles