数据验证需要前端验证+后端验证

一,什么是数据验证

数据验证其实就是数据的合法性校验,例如:用户添加的邮件地址是不是正确啊,是不是太长了等等。

为什么要进行数据校验。

1,约束用户不要糊乱添写

2,我们想得到更真实的用户信息

3,人性化的验证,用户体验好,让别人觉得很专业

4,对自己系统的保护

我把验证分成二部分,第一部分,前端验证;第二部分,后端验证。

二,前,后端验证

前端验证,是为了区别后端验证而这样说的,主要是用js,jquery来验证数据的合法性,来增强用户体验的,比如,鼠标移上去会有提示效果,鼠标离开,就会马上告诉你数据是否合法等等。

有人会问,前端校验已经完全可以校验数据的合法性了,为什么还要后端校验呢?不是多此一举吗?

没有前端验证可以,顶多让用户觉得这个网站不是很好用,但是没有后端验证,数据就会有问题了。举个例子:

1,你在blog.51yip.com/regist.php注册页面添完数据后,跳转到 blog.51yip.com/registok.php,如果走这个流程,regist.php做了前端验证,不做后端验证了。

2,我在本地也建了一个localhost/regist.php,添加完数据不进行验证,直接跳转到blog.51yip.com/registok.php,如果这样的话,我就避开了blog.51yip.com/regist.php这个前端验证,如果registok.php不做后端验证的话,数据安全就会有隐患。

如何配置VMware客户虚拟机使用NAT模式联网通信

本例中配置客户虚拟机(CentOS)使用NAT(网络地址转换Network Address Translation)模式进行联网到公网(互联网)。客户机网段为192.168.1.0/24网段,经NAT由主机(192.168.0.0/24网段)连接到互联网。

1.主机配置如下:
  IP地址:    192.168.0.125
  子网掩码: 255.255.255.0
  网关:     192.168.0.2
  DNS服务器:192.168.0.2

VMwareNAT1.png

2.虚拟客户端(CentOS)设置为自动获取IP地址,处于192.168.1.0/24网段。

VMwareNAT3.png

3.按住Windows徽标键不放,然后按“R”键。
4.输入“services.msc”并按回车键确定。

Servicesmsc.png

5.弹出服务管理窗口,在右边栏确认“VMware DHCP Service”和“VMware NAT Service”已正常启动。

VMwareNAT2.png

6.在客户虚拟机(本例中为CentOS66)点击“编辑虚拟机设置”,在虚拟机设置窗口“硬件”选项下选择“网络适配器”,
  在右边网络连接栏选择“NAT模式(N):用于共享主机的IP地址”,确认无误后点击下方的“确定”按钮。

VMwareNAT4.png

7.点击VMware的“编辑(E)”并在下拉菜单中选择“虚拟网络编辑器(N)...”。

VMwareNAT5.png

8.在虚拟网络编辑器里面选择“VMnet8”。

VMwareNAT6.png

9.在“VMnet信息”栏更加您的需要修改子网IP及子网掩码(本例中为192.168.1.0/24),确认无误后点击“应用(A)”按钮。

VMwareNAT7.png

10.在“VMnet信息”栏点击“NAT设置(S)”按钮。

VMwareNAT12.png

11.在“NAT设置”窗口查看网关(本例中为192.168.1.2),点击“DNS设置(D)”按钮。

VMwareNAT13.png

12.在“域名服务器(DNS)”窗口取消“自动检测可用的DNS服务器(A)”,并在“首选DNS服务器(P)”后输入主机DNS服务器IP地址(本例中为192.168.0.2)。
   确认无误后点击“确定”按钮回到“虚拟网络编辑器”窗口。

VMwareNAT14.png

13.点击“DHCP设置(P)...”按钮,对地址池进行设置(本例中为192.168.1.3-192.168.1.254)。
   注意:192.168.1.1已被VMnet8使用,192.168.1.2已被网关使用。

VMwareNAT15.png

14.在命令行输入“ncpa.cpl”并按回车键确定。

VMwareNAT8.png

15.在网络连接窗口中已经点击“VMnet8”并选择“属性(R)”。

VMwareNAT9.png

16.在弹出窗口选择“Internet 协议版本4 (TCP/IPv4)”并点击“属性(R)”。

VMwareNAT10.png

17.检查IP地址设置是否正确(本例中为192.168.1.1/24),默认网关保持为空,点击“确定”按钮保存设置。
   注意:此处DNS服务器可以为空。

VMwareNAT11.png

18.登录客户机,由于默认为从DHCP服务器获取地址,直接输入“ifconfig”查看IP设置。

VMwareNAT16.png

19.输入“ping www.sohu.com”测试是否正常连接外网。

VMwareNAT17.png

20.如需是在客户机为固态IP地址,则输入“vi /etc/sysconfig/network-scripts/ifcfg-eth0”并按回车键确定。
   注意:网卡名称需根据实际名称进行变化。

VMwareNAT18.png

21.设置IP地址为固态IP(为同动态IP区别,本例中设置为192.168.1.100/24),确认无误后输入“:x”保存退出。
   具体设置请点击如何设置Linux获取动态及静态IP地址

VMwareNAT19.png

22.输入“service network restrat”重启服务。

VMwareNAT20.png

23.输入“ifconfig”查看IP地址(注意同动态IP地址不同)。

VMwareNAT21.png

24.输入“ping www.163.com”测试是否正常连接外网。

VMwareNAT22.png

参考地址:https://www.ytyzx.org/index.php/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AEVMware%E5%AE%A2%E6%88%B7%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%BD%BF%E7%94%A8NAT%E6%A8%A1%E5%BC%8F%E8%81%94%E7%BD%91%E9%80%9A%E4%BF%A1

CodeIgniter在nginx下404 not found

今天遇到一个问题:将CI框架写的项目移植到nginx时,发现所有控制器的访问都是404,经过一番资料查找后发现,是nginx配置的问题,正确的如下所示:

server { 

 server_name vm.project.com; 

 location / { 

 index index.html index.php; 

 root /home/www/project; 

 } 

 location ~ \.php($|/) { 

 root /home/www/project; 

 fastcgi_pass unix:/tmp/php-cgi.sock; 

 fastcgi_index index.php; 
 fastcgi_split_path_info ^(.+\.php)(.*)$;
 fastcgi_param PATH_INFO $fastcgi_path_info;

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
 include fastcgi_params; 
 }
 if (!-e $request_filename) {
 rewrite ^/php_box/(.*)$ /php_box/index.php/$1 last; 
 break;
 } 
}

需要注意的地方:

 location ~ \.php($|/) {

一开始我的配置为:
 location ~ \.php$ { 所以一直没有搞成功,这个问题折腾了很久,特此说明一下。

Apache目录访问权限配置详解

给指定的文件夹配置对应的访问权限是Apache配置中的基础应用,也是Apache使用者的必备技能之一。

在Apache配置文件中,给指定目录设置基本的访问权限,主要是靠AllowDenyOrder三个指令的配合使用来实现的。

1.Allow指令

Allow指令的作用与其英文单词的含义一致,用于设置允许访问当前目录(及其子目录)或文件的用户范围。例如,Allow from all表示允许所有用户访问。下面,我们参考更多的例子,以帮助理解(DenyOrder用法一致):

<Directory /web>
#只允许IP为123.10.10.2的用户访问/web目录
Allow from 123.10.10.2
</Directory>
<Directory /web>
#只允许IP以10.10开头的用户访问/web目录
Allow from 10.10
</Directory>
<Directory /web>
#只允许域名为365mini.com的用户访问
Allow from 365mini.com
</Directory>

2.Deny指令

同样的,Deny指令的作用就是「Deny(拒绝)」,用于设置拒绝访问当前目录或文件的用户范围。例如,Deny from all表示拒绝所有用户访问。

3.Order指令

在Apache的配置文件中,Order指令用于控制Allow指令和Deny指令的生效顺序。例如,Order Allow,Deny表示当前配置段中的Allow指令先生效,Deny指令后生效。

在Apache中,Allow指令和Deny指令在同一配置段中都可以有多条。不过,对于AllowDeny指令而言,如果先生效的指令与后生效的指令的作用范围存在冲突,则起冲突的作用范围部分以后生效的指令为准。

下面,我们同样参考几个具体的例子以帮助大家理解:

<Directory /web>
Order Allow,Deny
Allow from all
Deny from 112.2.10.2
#先允许所有用户访问,再拒绝112.2.10.2
#总结:允许除IP为112.2.10.2外的所有用户访问
</Directory>
<Directory /web>
Order Allow,Deny
Deny from 112.2.10.2
Allow from all
#先允许所有用户访问,再拒绝112.2.10.2
#总结:允许除IP为112.2.10.2外的所有用户访问
#(即使Deny指令在Allow指令之前,但是根据Order Allow,Deny语句,仍然先看Allow,再看Deny)
</Directory>
<Directory /web>
Order Deny,Allow
Deny from 112.2.10.2
Allow from all
Deny from 123.10.10.1
#先拒绝112.2.10.2访问
#再拒绝123.10.10.1访问
#最后允许所有用户访问
#总结:允许所有用户访问
#(即使Allow指令在Deny指令前,但是根据Order Deny,Allow语句,仍然先看Deny,再看Allow)
</Directory>