linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

限定某个目录禁止解析PHP

对于使用PHP语言编写的网站,有一些目录是有需求上传文件的,比如服务器可以上传图片,并且没有做防盗链,所以就会被人家当成了一个图片存储服务器,并且盗用带宽流量。如果网站代码有漏洞,让***上传了一个用PHP代码写的***,由于网站可以执行PHP程序,最终会让***拿到服务器权限,为了避免这种情况发生,我们需要把能上传文件的目录直接禁止解析PHP代码(不用担心会影响网站访问,若这种目录也需要解析PHP,那说明程序员不合格)

1. 修改虚拟主机配置文件

[root@gary-tao ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf核心配置文件内容:<Directory /data/wwwroot/111.com/upload>php_admin_flag engine off  //这一段就可以禁止解析PHP代码<FilesMatch (.*)\.php(.*)> //这一段就是让php的文件访问受到限制,防止php文件的源代码被查看Order allow,denyDeny from all</FilesMatch></Directory>[root@gary-tao 111.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK  //测试语法
[root@gary-tao 111.com]# /usr/local/apache2.4/bin/apachectl graceful  //加载配置
[root@gary-tao 111.com]# mkdir upload //创建一个upload目录
[root@gary-tao 111.com]# ls
123.php  admin  index.php  qq.png  upload
[root@gary-tao 111.com]# cp 123.php upload/  
修改后示例图

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

2. 使用curl测试时返回403

[root@gary-tao 111.com]# curl -x172.16.111.100:80 'http://111.com/upload/123.php' -I  //直接不给访问权限
HTTP/1.1 403 Forbidden
Date: Tue, 26 Dec 2017 06:19:17 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1

测试需要把下面配置先禁止掉:

        <FilesMatch (.*)\.php(.*)> Order allow,denyDeny from all</FilesMatch>[root@gary-tao 111.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@gary-tao 111.com]# /usr/local/apache2.4/bin/apachectl graceful
修改后示例图:

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

禁止掉后使用curl后的测试结果:

[root@gary-tao 111.com]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'       //下例信息说明123.php不能正常解析
<?php
echo "123.php";
?>

限制user_agent

user_agent可以理解为浏览器标识,针对user_agent来限制一些访问,比如可以限制一些不太友好的搜索引擎“爬虫”,你之所以能在百度搜到一些论坛,就是因为百度会派一些“蜘蛛爬虫”过来抓取网站数据。“蜘蛛爬虫”抓取数据类似于用户用浏览器访问网站,当“蜘蛛爬虫”太多或者访问太频繁,就会浪费服务器资源。另外,也可以限制恶意请求,这种恶意请求我们通常称作cc***,他的原理很简单,就是用很多用户的电脑同时访问同一个站点,当访问量或者频率达到一定层次,会耗尽服务器资源,从而使之不能正常提供服务。这种cc***其实有很明显的规律,其中这些恶意请求的user_agent相同或者相似,那我们就可以通过限制user_agent发挥防***的作用。

1. 针对user_agent来做访问限制的核心配置文件内容

[root@gary-tao 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf核心配置文件内容<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR] //OR是或者的意思,user_agent匹配curl或者匹配baidu.comRewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC] //NC是忽略大小写RewriteRule  .*  -  [F]  //F是Forbidden</IfModule>[root@gary-tao 111.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@gary-tao 111.com]# /usr/local/apache2.4/bin/apachectl graceful
修改配置示例如下图:

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

2.使用curl测试如下:

[root@gary-tao 111.com]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /upload/123.php
on this server.<br />
</p>
</body></html>
[root@gary-tao 111.com]# curl -x127.0.0.1:80 'http://111.com/upload/123.php' -I
HTTP/1.1 403 Forbidden
Date: Tue, 26 Dec 2017 07:03:42 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1

3.指定user_agent,如果不指定user_agent,那么curl作为user_agent会被限制访问,从上面测试可以看出。

示例如下:

[root@gary-tao 111.com]# curl -A "xietao xietao" -x127.0.0.1:80 'http://111.com/upload/123.php' -I
HTTP/1.1 200 OK
Date: Tue, 26 Dec 2017 07:08:20 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Last-Modified: Tue, 26 Dec 2017 06:16:53 GMT
ETag: "19-561383aa99f09"
Accept-Ranges: bytes
Content-Length: 25
Cache-Control: max-age=0
Expires: Tue, 26 Dec 2017 07:08:20 GMT
Content-Type: application/x-httpd-php[root@gary-tao 111.com]# tail /usr/local/apache2.4/logs/111.com-access_20171226.log  //查看日志
127.0.0.1 - - [26/Dec/2017:14:25:40 +0800] "HEAD http://111.com/upload/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
127.0.0.1 - - [26/Dec/2017:14:26:52 +0800] "GET http://111.com/upload/123.php HTTP/1.1" 200 25 "-" "curl/7.29.0"
172.16.111.1 - - [26/Dec/2017:14:29:07 +0800] "GET / HTTP/1.1" 200 12 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
172.16.111.1 - - [26/Dec/2017:14:29:16 +0800] "GET /123.php HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
172.16.111.1 - - [26/Dec/2017:14:29:31 +0800] "GET /uploab/123.php HTTP/1.1" 404 212 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
172.16.111.1 - - [26/Dec/2017:14:29:43 +0800] "GET /upload/123.php HTTP/1.1" 200 25 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
172.16.111.1 - - [26/Dec/2017:14:29:44 +0800] "GET /upload/123.php HTTP/1.1" 200 25 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
127.0.0.1 - - [26/Dec/2017:15:03:15 +0800] "GET http://111.com/upload/123.php HTTP/1.1" 403 223 "-" "curl/7.29.0"
127.0.0.1 - - [26/Dec/2017:15:03:42 +0800] "HEAD http://111.com/upload/123.php HTTP/1.1" 403 - "-" "curl/7.29.0"
127.0.0.1 - - [26/Dec/2017:15:08:20 +0800] "HEAD http://111.com/upload/123.php HTTP/1.1" 200 - "-" "xietao xietao"
解释说明:

常用配置选项:

使用参数 -A 指定了它的user_agent后就可以访问。
使用参数 -e 指定referer
使用参数 -x 相对省略本地绑定hosts
使用参数 -I 查看状态码

php相关配置

虽然PHP是以httpd一个模块的形式存在,但是PHP本身也有自己的配置文件。

1. 查看PHP配置文件位置

[root@gary-tao 111.com]# ls 
123.php  admin  index.php  qq.png  upload
[root@gary-tao 111.com]# vi index.php //编辑index文件,输入以下内容,保存退出。<?php
phpinfo();
?>
  • 浏览器访问:http://111.com/index.php

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

  • 复制源码包里开发配置文件
[root@gary-tao 111.com]# cd /usr/local/src/php-7.1.6
[root@gary-tao php-7.1.6]# cp php.ini-development /usr/local/php7/etc/php.ini
[root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful //重新加载配置

结果如下图:

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

解释说明:

php.ini为PHP的配置文件,可以看出其在/usr/local/php7/etc/php.ini。

2.PHP的disable_functions

PHP有诸多的内置的函数,有一些函数(比如exec)会直接调取linux的系统命令,如果开放将会非常危险,因此,基于安全考虑应该把一些存在安全风险的函数禁掉。

示例如下:

[root@gary-tao php-7.1.6]# vim /usr/local/php7/etc/php.ini //搜索disable_functions,编辑加上如下函数eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo
[root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful //重新加载配置
因为加上了phpinfo函数,所以访问index.php时结果如下:

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

3.定义date.timezone,如果不定义会导致有告警信息

[root@gary-tao php-7.1.6]# vim /usr/local/php7/etc/php.ini //找到date.timezone定义如下:date.timezone = Asia/Shangahi(或Chongqing)
示例图如下:

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

4. 配置 error_log

PHP的日志对于程序员来讲非常重要,它是排查问题的重要手段。

如果加上了phpinfo函数后,浏览器上访问http://111.com/index.php 就会有信息输出,这样也暴露的地址目录,相对来说也不安全,我们需要把报错信息也隐藏掉,操作如下:

[root@gary-tao php-7.1.6]# vim /usr/local/php7/etc/php.ini  //搜索display_errors定义如下:
display_errors = Off
[root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful
修改示意图

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

浏览访问结果如下:

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

使用curl测试如下:
[root@gary-tao php-7.1.6]# curl -A "xietao xietao" -x127.0.0.1:80 'http://111.com/index.php'
[root@gary-tao php-7.1.6]# curl -A "xietao xietao" -x127.0.0.1:80 'http://111.com/index.php' -I
HTTP/1.1 200 OK
Date: Tue, 26 Dec 2017 09:02:01 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Cache-Control: max-age=0
Expires: Tue, 26 Dec 2017 09:02:01 GMT
Content-Type: text/html; charset=UTF-8
总结:配置了display_errors = Off后,浏览器访问没有任何输出信息,一片空白,使用curl输出也是一样,这样我们就无法判断是否有问题,所以需要配置错误日志。

修改配置日志示例如下:

[root@gary-tao php-7.1.6]# vim /usr/local/php7/etc/php.ini定义如下:
//搜索log_errors 改为 log_errors =On
//搜索error_log 改为 /tmp/php/php_errors.log
//搜索error_reporting 改为 error_reporting = E_ALL & ~E_NOTICE
//搜索display_errors 改为 display_errors = Off[root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful
[root@gary-tao php-7.1.6]# curl -A "xietao xietao" -x127.0.0.1:80 'http://111.com/index.php'
[root@gary-tao php-7.1.6]# ls /tmp/
pear  php_errors.log  systemd-private-c13d62a36c594e09a55010e8f304eb60-vmtoolsd.service-1qgl8W
[root@gary-tao php-7.1.6]# ls -l /tmp/php_errors.log 
-rw-r--r-- 1 daemon daemon 290 12月 26 17:13 /tmp/php_errors.log
[root@gary-tao php-7.1.6]# ps aux |grep httpd
root       5358  0.0  1.4 260000 14804 ?        Ss   12月19   0:37 /usr/local/apache2.4/bin/httpd -k graceful
daemon    14250  0.0  1.3 546828 13604 ?        Sl   17:13   0:00 /usr/local/apache2.4/bin/httpd -k graceful
daemon    14251  0.0  1.1 546828 11580 ?        Sl   17:13   0:00 /usr/local/apache2.4/bin/httpd -k graceful
daemon    14252  0.0  1.8 682124 18552 ?        Sl   17:13   0:00 /usr/local/apache2.4/bin/httpd -k graceful
root      14340  0.0  0.0 112680   972 pts/0    S+   17:15   0:00 grep --color=auto httpd
[root@gary-tao php-7.1.6]# grep error_log /usr/local/php7/etc/php.ini
; server-specific log, STDERR, or a location specified by the error_log
; Set maximum length of log_errors. In error_log information about the source is
error_log = /tmp/php_errors.log
;error_log = syslog
; OPcache error_log file name. Empty string assumes "stderr".
;opcache.error_log=
[root@gary-tao php-7.1.6]# touch /tmp/php_errors.log ; chmod 777 /tmp/php_errors.log  //因为日志用户是daemon,日志是随着httpd的服务启动,为了保证PHP的错误日志所在目录存在,并且有权限为可写。
[root@gary-tao php-7.1.6]# cat /tmp/php_errors.log 
[26-Dec-2017 17:13:35 Asia/Shanghai] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[26-Dec-2017 17:13:47 Asia/Shanghai] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
模拟一个错误演示:
[root@gary-tao php-7.1.6]# vim /data/wwwroot/111.com/2.php //编辑如下内容<?php
echo 1234.php;
adfadgagagag[root@gary-tao php-7.1.6]# curl -A "xietao xietao" -x127.0.0.1:80 http://111.com/2.php
[root@gary-tao php-7.1.6]# curl -A "xietao xietao" -x127.0.0.1:80 http://111.com/2.php -I
HTTP/1.0 500 Internal Server Error
Date: Tue, 26 Dec 2017 09:32:20 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Connection: close
Content-Type: text/html; charset=UTF-8

出现状态码500,这说明我们访问的页面是存在错误的,此时需要查看PHP的错误日志来判定错误原因,如下:

[root@gary-tao php-7.1.6]# !cat
cat /tmp/php_errors.log 
[26-Dec-2017 17:13:35 Asia/Shanghai] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[26-Dec-2017 17:13:47 Asia/Shanghai] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[26-Dec-2017 17:32:08 Asia/Shanghai] PHP Parse error:  syntax error, unexpected 'php' (T_STRING), expecting ',' or ';' in /data/wwwroot/111.com/2.php on line 2
[26-Dec-2017 17:32:20 Asia/Shanghai] PHP Parse error:  syntax error, unexpected 'php' (T_STRING), expecting ',' or ';' in /data/wwwroot/111.com/2.php on line 2

5.配置open_basedir

前言

一个服务器上跑很多网站,小公司为节省成本采用的做法,这样操作是会有一些弊端:多个网站跑在同一个服务器上,如果其中一个网站被黑,很有可能会连累到其他站点,为了避免这种尴尬的事情发生,我们应当作一些预防手段。
PHP有一个概念叫作open_basedir,它的作用是将网站限定在指定目录里,就算该站点被黑了,***只能在该目录下面有所作为,而不能左右其他目录。如果你的服务器上只有一个站点,那可以直接在php.ini中设置open_basedir参数。但如果服务器上跑的站点比较多,那在php.ini中设置就不合适了,因为在php.ini中只能定义一次,也就是说所有站点都一起定义限定的目录,那这样似乎起不到隔离多个站点的目的。

1.使用php.ini设置open_basedir举例演示:
  • 条件:把这个open_basedir地址目录的111.com目录下改成错误的1111.com

得到如下日志结果,示例如下:

[root@gary-tao php-7.1.6]# vim /usr/local/php7/etc/php.ini //编辑添加open_basedir目录地址定义如下
open_basedir = /data/wwwroot/1111.com:/tmp [root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful
[root@gary-tao php-7.1.6]# curl -A "xietao xietao" -x127.0.0.1:80 http://111.com/2.php -I
HTTP/1.0 500 Internal Server Error
Date: Tue, 26 Dec 2017 11:44:40 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Connection: close
Content-Type: text/html; charset=UTF-8[root@gary-tao php-7.1.6]# vi /data/wwwroot/111.com/2.php //编辑定义如下,保存退出<?php
echo 123;[root@gary-tao php-7.1.6]# curl -A "xietao xietao" -x127.0.0.1:80 http://111.com/2.php -I
HTTP/1.0 500 Internal Server Error
Date: Tue, 26 Dec 2017 11:47:23 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Connection: close
Content-Type: text/html; charset=UTF-8[root@gary-tao php-7.1.6]# !cat
cat /tmp/php_errors.log 
[26-Dec-2017 17:13:35 Asia/Shanghai] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[26-Dec-2017 17:13:47 Asia/Shanghai] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[26-Dec-2017 17:32:08 Asia/Shanghai] PHP Parse error:  syntax error, unexpected 'php' (T_STRING), expecting ',' or ';' in /data/wwwroot/111.com/2.php on line 2
[26-Dec-2017 17:32:20 Asia/Shanghai] PHP Parse error:  syntax error, unexpected 'php' (T_STRING), expecting ',' or ';' in /data/wwwroot/111.com/2.php on line 2
[26-Dec-2017 19:44:40 Asia/Shanghai] PHP Warning:  Unknown: open_basedir restriction in effect. File(/data/wwwroot/111.com/2.php) is not within the allowed path(s): (/data/wwwroot/1111.com:/tmp) in Unknown on line 0
[26-Dec-2017 19:44:40 Asia/Shanghai] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[26-Dec-2017 19:44:40 Asia/Shanghai] PHP Fatal error:  Unknown: Failed opening required '/data/wwwroot/111.com/2.php' (include_path='.:/usr/local/php7/lib/php') in Unknown on line 0
[26-Dec-2017 19:47:23 Asia/Shanghai] PHP Warning:  Unknown: open_basedir restriction in effect. File(/data/wwwroot/111.com/2.php) is not within the allowed path(s): (/data/wwwroot/1111.com:/tmp) in Unknown on line 0
[26-Dec-2017 19:47:23 Asia/Shanghai] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[26-Dec-2017 19:47:23 Asia/Shanghai] PHP Fatal error:  Unknown: Failed opening required '/data/wwwroot/111.com/2.php' (include_path='.:/usr/local/php7/lib/php') in Unknown on line 0
  • 条件:把这个open_basedir地址目录改成正确的111.com
[root@gary-tao php-7.1.6]# vim /usr/local/php7/etc/php.ini定义如下
open_basedir = /data/wwwroot/111.com:/tmp [root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful
[root@gary-tao php-7.1.6]# curl -A "a" -x127.0.0.1:80 http://111.com/2.php -I
HTTP/1.1 200 OK
Date: Tue, 26 Dec 2017 11:57:59 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Cache-Control: max-age=0
Expires: Tue, 26 Dec 2017 11:57:59 GMT
Content-Type: text/html; charset=UTF-8
2.针对不同的虚拟主机去限制不同的open_basedir。
[root@gary-tao ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf定义如下:
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"[root@gary-tao ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@gary-tao ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@gary-tao ~]# !curl
curl -A "a" -x127.0.0.1:80 http://111.com/2.php -I
HTTP/1.1 200 OK
Date: Tue, 26 Dec 2017 12:34:57 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Cache-Control: max-age=0
Expires: Tue, 26 Dec 2017 12:34:57 GMT
Content-Type: text/html; charset=UTF-8[root@gary-tao ~]# curl -A "a" -x127.0.0.1:80 http://111.com/2.php
123[root@gary-tao ~]# 
修改示例图:

linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置

转载于:https://blog.51cto.com/taoxie/2054896

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是光缆

光缆(optical fiber cable)是为了满足光学、机械或环境的性能规范而制造的&#xff0c;它是利用置于包复护套中的一根或多根光纤作为传输媒质并可以单独或成组使用的通信线缆组件。光缆主要是由光导纤维&#xff08;细如头发的玻璃丝&#xff09;和塑料保护套管及塑料外皮构成&…

js调用android播放器,js调用android本地方法

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;昨天自己录了一个android本地调用h5中js方法&#xff0c;可能是因为视频比较耗费流量&#xff0c;结果看的人不是很多&#xff0c;所以决定还是先写文章&#xff0…

doxygen相关问题

doxygen相关问题 我主要的设置有 现在 wizard对话框中大体设置下,然后 export设置: project->DOXYFILE_ENCODINGGBK project->OUTPUT_LANGUAGEchinese input->INPUT_ENCODINGGBK Dot->HAVE_DOT Dot-> UML_LOOK Dot->CALL_GRAPH Dot->CALLER_GRAPH http…

前端之JavaScript 02

一、函数 // 最基础的函数定义 function f1() {console.log(hello world!); } f1(); // hello world!// 带参数的函数 function f2(name,age) {console.log("姓名 : " name " 年龄&#xff1a;" age); } f2("jassin",18); // 姓名 : jassi…

什么是双绞线

双绞线&#xff08;twisted pair&#xff0c;TP&#xff09;是一种综合布线工程中最常用的传输介质&#xff0c;是由两根具有绝缘保护层的铜导线组成的。把两根绝缘的铜导线按一定密度互相绞在一起&#xff0c;每一根导线在传输中辐射出来的电波会被另一根线上发出的电波抵消&a…

Android蒙版倒计时,【倒计时海报设计】- 虎课网

我们在大街上经常会看到各种宣传海报&#xff0c;有时商家为了达到促销的目的会在醒目的地方张贴一张倒计时海报&#xff0c;为的就是吸引群众的眼睛&#xff0c;大家了解PS倒计时海报设计的制作过程吗&#xff1f;如果对这方面操作不太了解的话&#xff0c;大家可以关注一下下…

linkit-smart-7688-feed 安装笔录

转载于:https://www.cnblogs.com/orangezs/p/8571791.html

android浏览SD卡的文件,简单实现浏览Android SD卡中的文件

----Main.javapublic class Main extends Activity {private TextView textView;private Button button;private ListView listView;public File currentParentFile;public File[] currentFiles;public static String sdcardDir ;static {try {//sd卡的路径sdcardDir Environ…

Java线程状态Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释

一、线程5种状态 新建状态&#xff08;New&#xff09; 新创建了一个线程对象。 就绪状态&#xff08;Runnable&#xff09; 线程对象创建后&#xff0c;其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中&#xff0c;变得可运行&#xff0c;等待获取CPU的使…

彩票相关知识

很多人做梦都想中得彩票头奖&#xff0c;很多人希望天上能掉下馅饼来砸中自己&#xff0c;很多人在作白日梦……彩票是一种风险投资&#xff0c;是一种四两拨千斤的气势&#xff0c;更是一种众人拾柴火焰高的真实写照&#xff0c;没买过彩票的人是很难体会那种美好的期望及期望…

(模拟信号/数字信号)分别以(模拟信号/数字信号)中传输方式

1、基本概念、基本术语和数据通信系统 1.基本概念和基本术语 数据&#xff1a;能够由计算机处理的数字、字母和符号等具有一定意义的实体。 分类&#xff1a;模拟数据可以在一定的数据区域中取连续的值&#xff0c;如声音和图像&#xff1b;数字数据只能取离散的数值&#xff0…

android11 rom,小米打造基于安卓11的ROM来了:米10尝鲜

原标题&#xff1a;小米打造基于安卓11的ROM来了&#xff1a;米10尝鲜据XDA报道&#xff0c;距离Android 11正式版发布还有几天时间&#xff0c;9月8日正式面向Pixel 2、Pixel 3、Pixel 4和Pixel 3a等机型推送Android 11正式版。另一方面&#xff0c;各大手机品牌已经紧锣密鼓开…

基于 HTML5 WebGL 的 3D 服务器与客户端的通信

这个例子的初衷是模拟服务器与客户端的通信&#xff0c;我把整个需求简化变成了今天的这个例子。3D 机房方面的模拟一般都是需要鹰眼来辅助的&#xff0c;这样找产品以及整个空间的概括会比较明确&#xff0c;在这个例子中我也加了&#xff0c;这篇文章就算是我对这次项目的一个…

七种常见的核酸序列蛋白编码能力预测工具 | ncRNAs | lncRNA

注&#xff1a;这些工具的应用都是受限的&#xff0c;有些本来就是只能用于预测动物&#xff0c;在使用之前务必用ground truth数据来测试一些。我想预测某一个植物的转录本&#xff0c;所以可以拿已经注释得比较好的拟南芥来测试一下。&#xff08;测试的结果还是比较惊人的&a…

寒武纪找到了引领中国AI芯片走向世界的路

大约6亿年前在地质学上被称作“寒武纪”的时代&#xff0c;大量无脊椎动物在短时间内出现“生命大爆发”。如今&#xff0c;“寒武纪”这个名字再次被人们提及&#xff0c;它源自中科院计算所研发的人工智能芯片处理器的命名&#xff0c;意喻人工智能即将迎来大爆发的时代。“寒…

浅谈PPM (Project Portfolio Management)

前言&#xff1a; 本文以纯理论性的PPM讲解为主&#xff0c;不会涉及到具体如何实施&#xff0c;我会在以后介绍详细的PPM实施方案介绍。 PPM&#xff0c;可能很多人并不清楚甚至可能没听说过&#xff0c;这是一个近些年才流行起来的概念&#xff0c;是Project Portfolio Mana…

Android怎么插手机卡,魅蓝E手机卡怎么装 魅蓝E手机SIM卡安装图文教程

昨天下午&#xff0c;魅族发布了全新系列魅蓝手机——魅蓝E&#xff0c;定位魅蓝高端产品线&#xff0c;售价1299元&#xff0c;李楠号称魅蓝E采用三四千元的旗舰机工艺&#xff0c;外观/屏幕/拍照提升明显。此外&#xff0c;魅蓝E依旧支持全网通双卡双待。那么魅蓝E怎么插卡/装…

快速幂总结

快速幂总结 快速幂这个东西比较好理解&#xff0c;但实现起来到不老好办&#xff0c;记了几次老是忘&#xff0c;今天把它系统的总结一下防止忘记。 首先&#xff0c;快速幂的目的就是做到快速求幂&#xff0c;假设我们要求a^b,按照朴素算法就是把a连乘b次&#xff0c;这样一来…

第三章

一.项目前期的主要工作 1.现状分析 ①.硬件分析 ②.软件分析 2.需求收集 3.粗略设计 ①.体系结构分析 ②.硬件&#xff08;网络&#xff09;设计 ③.应用系统设计 ④.安全设计 ⑤.配套设计 4.可行性分析 二.结构的项目前期实例 1.组织分析 3.需求收集 4.粗略设计 ①.系统体系结…

荣耀magic3会用鸿蒙,赵明:荣耀Magic3芯片领先行业,大家看到以后会换掉手机!...

荣耀CEO赵明亲自参加高通2021技术峰会&#xff0c;宣布与高通达成战略合作&#xff0c;未来全系产品采用高通平台。赵明同时透露未来的产品动向&#xff0c;不排除未来与华为继续合作&#xff0c;采用鸿蒙操作系统的可能。赵明表示&#xff0c;Android操作系统依旧是荣耀的首选…