6hz7vif 发表于 2024-8-22 14:52:02

架构师必须晓得的26项PHP安全实践


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="http://mmbiz.qpic.cn/mmbiz_gif/LFP9SpGv0PHPOTyYMiavUD1Lj7NgoRBHRkY18EQlleUmY3babibAKWcdcVWibWBibr9whBwEgMHnicnla2yBJEUBicJA/0?wx_fmt=gif&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1" style="width: 50%; margin-bottom: 20px;">、</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">PHP是一种开源服务器端脚本语言,应用很广泛。Apacheweb服务器<span style="color: black;">供给</span>了这种便利:<span style="color: black;">经过</span>HTTP或HTTPS协议,<span style="color: black;">拜访</span>文件和内容。配置<span style="color: black;">欠妥</span>的服务器端脚本语言会带来<span style="color: black;">各样</span>各样的问题。<span style="color: black;">因此</span>,<span style="color: black;">运用</span>php时要小心。以下是25个PHP安全方面的最佳实践。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="http://mmbiz.qpic.cn/mmbiz_jpg/LFP9SpGv0PHPOTyYMiavUD1Lj7NgoRBHRGKXicmI7jWyTdpPibNaEicUbibX8NMp3xNZchQPkMCuqCX4XjLYu19efJw/640?wx_fmt=jpeg&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">文件根目录(DocumentRoot):/var/www/html</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">默认的PHP配置文件:/etc/php.ini</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>的示例php安全配置文件:/etc/php.d/security.ini(需要<span style="color: black;">运用</span>文本编辑器来创建该文件)</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">默认的php服务器TCP/UDP端口:无</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">$ php v</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">PHP 5.3.3 (cli) (built: Oct 24 2011 08:35:41)</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Zend Engine v2.3.0, Copyright (c) 19982010 Zend Technologies</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">$cat/etc/redhatrelease</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Red HatEnterprise Linux Server release 6.1 (Santiago)</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">基于PHP的应用程序面临<span style="color: black;">区别</span>类型的攻击。我<span style="color: black;">重视</span>到了几种<span style="color: black;">区别</span>类型的攻击:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">SQL注入攻击:这是PHP应用程序的数据库层中的安全漏洞。用户输入不正确地过滤时,应用程序就能执行任何SQL语句。你<span style="color: black;">能够</span>配置Apache,编写安全代码(验证和转换所有的用户输入),以避免SQL注入攻击。PHP中的一个<span style="color: black;">平常</span>做法是,在发送SQL<span style="color: black;">查找</span>之前,<span style="color: black;">运用</span>名为mysql_real_escape_string()的函数,转换参数。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">添加本地和远程文件:攻击者<span style="color: black;">能够</span>从远程服务器打开文件,执行任何PHP代码。这让<span style="color: black;">她们</span>得以上传文件、删除文件和安装后门。<span style="color: black;">能够</span>配置php以禁用远程文件执行功能。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">seasurf攻击(跨站请求伪造,CSRF):这种攻击迫使<span style="color: black;">最后</span>用户针对<span style="color: black;">日前</span>已验证其身份的Web应用程序执行有害的操作。<span style="color: black;">倘若</span>是平常的用户,得逞的CSRF攻击会危及<span style="color: black;">最后</span>用户的数据和操作。但<span style="color: black;">倘若</span>被盯上的<span style="color: black;">最后</span>用户<span style="color: black;">运用</span>管理员帐户,这会危及<span style="color: black;">全部</span>Web应用程序。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">想查看一组编译进去的PHP模块,请输入以下命令:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">我<span style="color: black;">意见</span>你<span style="color: black;">运用</span>模块数量减少的PHP,以<span style="color: black;">加强</span>性能和安全。<span style="color: black;">例如</span>说,你<span style="color: black;">能够</span><span style="color: black;">经过</span>删除(移除)配置文件<span style="color: black;">或</span>更名(或移动)一个名为/etc/php.d/sqlite3.ini的文件来禁用sqlite3模块,操作如下:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">或</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">其他编译进去的模块只能<span style="color: black;">经过</span>重新安装精简配置的PHP来移除。<span style="color: black;">能够</span>从php.net下载php源代码,<span style="color: black;">而后</span>按以下<span style="color: black;">办法</span>编译它,支持GD、fastcgi和mysql:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">参阅<span style="color: black;">怎样</span>编译php,并重新安装到类似Unix的操作系统上(http://www.php.net/manual/en/install.unix.php),以<span style="color: black;">认识</span><span style="color: black;">更加多</span>信息。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">要限制PHP信息<span style="color: black;">泄密</span>,就要禁用expose_php。编辑/etc/php.d/secutity.ini,执行以下指令:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">upload_tmp_dir="/var/lib/php/session"</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">#lsZ /var/lib/php/</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">drwxrwx. root apache system_u:object_r:httpd_var_run_t:s0 session</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">第17个最佳实践:保持PHP、软件和操作系统版本最新</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">#yumupdate</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">#aptgetupdate &amp;&amp; aptget upgrade</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">重视</span>:经常<span style="color: black;">拜访</span>php.net(http://php.net/),寻找源代码安装的最新版本。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">保证</span>你以Apache或www等非根用户的身份来运行Apache。所有文件和目录都应该归非根用户(或apache用户)所有,放在/var/www/html下:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">/var/www/html/是个子目录,这是其他用户<span style="color: black;">能够</span>修改的文件根目录,<span style="color: black;">由于</span>根目录从来不在那里执行任何文件,<span style="color: black;">亦</span>不会在那里创建文件。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">#chmodR 0444 /var/www/html/</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">#find/var/www/html/ type d print0 |xargs0 I {} chmod 0445 {}</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">chown和chmod命令<span style="color: black;">保证</span>:不管在什么<span style="color: black;">状况</span>下,文件根目录或文件根目录里面的文件都<span style="color: black;">能够</span>被Web服务器用户apache写入。请<span style="color: black;">重视</span>:你需要设置对你网站的<span style="color: black;">研发</span>模型最<span style="color: black;">恰当</span>的权限,<span style="color: black;">因此</span><span style="color: black;">能够</span><span style="color: black;">按照</span><span style="color: black;">自己</span>需要,随意<span style="color: black;">调节</span>chown和chmod命令。在这个示例中,Apache服务器以apache用户的身份来运行。这<span style="color: black;">能够</span>在你的httpd.conf文件中用User和Group命令来配置。apache用户需要对文件根目录下的所有内容享有读取<span style="color: black;">拜访</span>权,<span style="color: black;">然则</span><span style="color: black;">不该</span>该享有写入<span style="color: black;">拜访</span>权。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">AllowOverride None</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">你只要在需要时才应该授予写入<span style="color: black;">拜访</span>权。WordPress等<span style="color: black;">有些</span>Web应用程序及其他应用程序可能需要缓存目录。你<span style="color: black;">能够</span><span style="color: black;">运用</span>以下命令,授予写入到缓冲目录的<span style="color: black;">拜访</span>权:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">### block access to all ###</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">第19个最佳实践:写<span style="color: black;">守护</span>Apache、PHP和MySQL配置文件</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># chattr +i /etc/php.ini</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># chattr +i /etc/my.ini</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># chattr +i /etc/chattr</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># chattr +i /var/www/html/file1.php</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">第20个最佳实践:<span style="color: black;">运用</span>Linux安全加载模块(如SELinux)</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># getsebool a | grep httpd</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">allow_httpd_anon_write &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">allow_httpd_mod_auth_pam &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_builtin_scripting &gt; on</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_can_network_connect &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_can_network_connect_db &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_can_network_relay &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_dbus_avahi &gt; on</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_enable_ftp_server &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_execmem &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_setrlimit &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_tmp_exec &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_unified &gt; on</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">httpd_use_gpg &gt; off</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">要禁用Apache cgi支持,请输入:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">参阅红帽SELinux指南(http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_Linux/6/html/SecurityEnhanced_Linux/index.html),<span style="color: black;">就可</span><span style="color: black;">认识</span><span style="color: black;">更加多</span>信息。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">ModSecurity是一个<span style="color: black;">守护</span>Web应用程序的开源入侵检测和预防引擎。你在Linux下很容易安装mod_security,安装后就能<span style="color: black;">守护</span>基于Apache和PHP的应用程序,远离XSS及其他<span style="color: black;">各样</span>攻击:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">#不<span style="color: black;">准许</span>打开/etc/中的文件</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">#阻止SQL注入攻击</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">SecFilter "select.+from"</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">将PHP及/或Apache放在chroot jail环境中<span style="color: black;">能够</span><span style="color: black;">尽可能</span>减小潜在的入侵事件<span style="color: black;">导致</span>的破坏,<span style="color: black;">由于</span>它将Web服务器隔离到文件系统的一小部分。你<span style="color: black;">能够</span><span style="color: black;">运用</span>Apache自带的那种传统的chroot jail环境。<span style="color: black;">不外</span><span style="color: black;">意见</span><span style="color: black;">运用</span>FreeBSD jail、运用容器概念的XEN虚拟化、KVM虚拟化或OpenVZ虚拟化。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">攻击者会<span style="color: black;">运用</span>wget之类的工具,将文件本地下载到你的Web服务器上。你<span style="color: black;">能够</span><span style="color: black;">运用</span>iptables阻止apache用户的出站连接。ipt_owner模块会试图比对本地创建的数据包与数据包创建者的各个特点。它<span style="color: black;">仅有</span>在OUTPUT链中才有效。在这个示例中,<span style="color: black;">准许</span>vivek用户<span style="color: black;">运用</span>端口80连接外界(这适用于RHN或centos repo<span style="color: black;">拜访</span>)。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">下面是另一个示例,阻止apache用户的所有出站连接(通向<span style="color: black;">咱们</span>自己的smtp服务器的出站连接除外),以及垃圾邮件验证API服务:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># /sbin/iptables append apache_user jreject</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">检测</span>apache日志文件:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># grep login.php /var/log/httpd/error_log</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">检测</span>php日志文件:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># grep "...etc/passwd" /var/log/httpd/php_scripts_error.log</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">第25个最佳实践:<span style="color: black;">根据</span>系统或虚拟机实例来运行服务</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="http://mmbiz.qpic.cn/mmbiz/2oIftlibVxxibUF80qXlU5wMA6edjibvBVgQbxwH2wiaIgD1nsFOS3QQ0RBk8e6Bic0eFObXExwENK8ST5qlX9Me8jQ/640?wx_fmt=jpeg&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在<span style="color: black;">区别</span>的服务器或虚拟机实例上运行<span style="color: black;">区别</span>的网络服务。这限制了可能受到危及的其他服务的数量。<span style="color: black;">例如</span>说,<span style="color: black;">倘若</span>攻击者成功地利用了Apache flow等软件的漏洞,就能<span style="color: black;">拜访</span><span style="color: black;">全部</span>服务器,<span style="color: black;">包含</span>在同一台服务器上运行的其他服务(<span style="color: black;">例如</span>MySQL和电子邮件服务等)。<span style="color: black;">然则</span>在<span style="color: black;">以上</span>例子中,按以下方式<span style="color: black;">供给</span><span style="color: black;">区别</span>内容:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">phpcgi1.lan.cyberciti.biz和phpcgi2.lan.cyberciti.biz:Apache web服务器,php用于生成动态内容。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">mcache1.lan.cyberciti.biz:Memcached服务器是用于MySQL的速度非常快的缓存系统。它<span style="color: black;">运用</span>libevent或epoll(Linux运行时环境),<span style="color: black;">能够</span>扩展至任何数量的打开的连接,并<span style="color: black;">运用</span>非阻塞的网络输入/输出。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">第26个最佳实践:其他工具</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">PHPIDS(PHP入侵检测系统)是面向基于PHP的web应用程序的安全层,<span style="color: black;">拥有</span><span style="color: black;">运用</span>简单、结构良好、运行快捷、技术先进等优点。IDS<span style="color: black;">没法</span>清除、净化或过滤任何恶意输入内容,仅仅识别攻击者何时企图闯入你的网站,安全<span style="color: black;">根据</span>你<span style="color: black;">期盼</span>它采取的<span style="color: black;">办法</span>来采取相应<span style="color: black;">办法</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">来自PhpSecInfo项目网页(http://phpsec.org/projects/phpsecinfo/index.html):</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">参阅Linux安全加固要点(http://www.cyberciti.biz/tips/linuxsecurity.html),减少系统面临的攻击途径数量。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">你可能碰到过PHP脚本或<span style="color: black;">所说</span>的<span style="color: black;">平常</span>后门,<span style="color: black;">例如</span>c99、c99madshell和r57等。后门php脚本其实<span style="color: black;">便是</span>一段<span style="color: black;">隐匿</span>的脚本,用于绕开所有的验证机制,<span style="color: black;">按照</span>需要<span style="color: black;">拜访</span>你的服务器。攻击者安装它的目的是,<span style="color: black;">拜访</span>你的服务器,<span style="color: black;">同期</span>又企图不被<span style="color: black;">发掘</span>。误用的PHP脚本(或其他任何CGI脚本)<span style="color: black;">一般</span><span style="color: black;">准许</span>添加钻Web浏览器中安全漏洞空子的代码。攻击者<span style="color: black;">能够</span><span style="color: black;">运用</span>这种被钻空子的安全漏洞,上传后门外壳程序,从而让攻击者能够<span style="color: black;">得到</span>许多功能,<span style="color: black;">例如</span>:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">上传文件</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">设置垃圾邮件服务器/中继服务器</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">掌控</span>服务器</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">窃取所有信息</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">打开TCP/UDP端口及<span style="color: black;">更加多</span>端口</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">能够</span><span style="color: black;">运用</span>Unix/Linux grep命令,搜索c99或r57外壳:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># grep iR r57 /var/www/html/</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"># grep RPn "(passthru|shell_exec|system|base64_decode|fopen|fclose|eval)" /var/www/html/</p>Thanksgiving day<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">感恩于上苍的赐予</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">感恩父母的养育,</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">感恩<span style="color: black;">伴侣</span>的<span style="color: black;">帮忙</span>,</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">感恩大自然的恩赐,</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">感恩花草鱼宠,</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">感恩困难逆境。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">算了,</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">还是先,</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">吃鸡</p><img src="http://mmbiz.qpic.cn/mmbiz_jpg/LFP9SpGv0PHPOTyYMiavUD1Lj7NgoRBHRicpPhLrkSAqJAiaBeLsAuYqveBhsmFn5EcVyPR33UffFMWibNt3FoQgGA/640?wx_fmt=jpeg&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;">




7wu1wm0 发表于 4 天前

你的见解真是独到,让我受益匪浅。
页: [1]
查看完整版本: 架构师必须晓得的26项PHP安全实践