目录

知识点

form表单的属性

js前端验证————>

upload.php

文件上传html

——引入了一个JS

js验证(可以直接看到原代码)

php(后端)验证————>

上传-html

file_up.php

浏览器禁用JS代码

ajax(Web数据交互方式)

ajax验证—————>

login.html

ajax.php

绕过

如何发现ajax?

两种验证

设计-购物*

user.php–购买页面

shop.php–验证

小结:

写网站:



知识点

1-js前端验证-文件上传

2-js-Ajax传递-登录-状态

3-JS-Ajax传递-购物-参数



form表单的属性

标签用来采集数据,标签的属性则是用来规定如何把采集到的数据发送到服务器

form表单-CSDN博客

属性描述
actionURL地址规定当提交表单时,向何处发送表单数据
methodget或post规定以何种方式把表单数据提交到 action URL
enctypemultipart/form-data text/plain application/x-www-form-urlencoded规定在发送表单数据之前如何对其进行编码
target (四个的值的前面都有一个下划线)blank self parent top framename规定在何处打开 action URL


js前端验证————>

upload.php

文件上传html


——引入了一个JS

js验证(可以直接看到原代码)

function checkFileExt(filename) //----触发的函数 {var flag = false; //状态var arr = ["jpg","png","gif"];//取出上传文件的扩展名//1.jpg index=1;ext=jpg;var index = filename.lastIndexOf(".");var ext = filename.substr(index+1);//比较for(var i=0;i


php(后端)验证————>

上传-html

文件上传

file_up.php

<?phpheader("Content-Type:text/html;charset=utf-8");@$file_name=$_FILES['upload']['name'];//获取上传文件类型@$file_type=$_FILES['upload']['type'];//获取上传文件大小@$file_size=$_FILES['upload']['size'];//获取上传文件临时文件名@$file_tmpname=$_FILES['upload']['tmp_name'];//获取上传文件是否错误@$file_error=$_FILES['upload']['error'];​echo $file_name."
";echo $file_type."
";echo $file_size."
";echo $file_tmpname."
";echo $file_error."
";​if (@$file_error>0){echo '上传出错!';}else{move_uploaded_file(@$_FILES["upload"]["tmp_name"], "../upload/" . @$_FILES["upload"]["name"]);echo "文件存储在: " . "upload/" . @$_FILES["upload"]["name"];}?>


浏览器禁用JS代码

————右键-检查-找三个点-设置,………

需要启用Javascript

Google Chrome(谷歌浏览器)​ 点击浏览器工具栏上的Chrome菜单图标 。 选择设置。 在“设置”页面上,点击显示高级设置…链接。 在“隐私设置”部分中,点击内容设置… 在“JavaScript”部分中,选中允许所有网站运行JavaScript(推荐)。 点击完成。​Firefox(火狐浏览器)​ 检查浏览器是否运行了拦截 JavaScript 的扩展件。Firefox默认启用 JavaScript,通常您只能通过运行扩展件来禁用。 检查 Firefox 高级设置。在 Firefox 的配置文件中,有一个不易察觉的选项可启用或禁用 JavaScript。 如要查看您是否意外禁用了该选项,可在 Firefox 地址栏中输入 about:config 并按回车键。 阅读警告消息并单击“我保证会小心”按钮。更改这些文件和设置可能会导致您的 Firefox 无法使用。 在页面顶部的搜索栏中,输入 javascript.enabled 并按回键。 javascript.enabled 的值应为 true。如果显示为“false”,则在该条目上单击右键,并选择“切换”。 重启 Firefox 并尝试载入含有 JavaScript 的页面。 如果其他所有方法失败,则请卸载和重新安装 Firefox 以恢复所有默认设置。​IE浏览器​ 单击右上角的齿轮图标。从出现的菜单中选择“Internet 选项”。 单击“安全”选项卡。单击窗口底部的“自定义级别”按钮,弹出“安全设置”对话框。 找到“脚本”目录。单击“JAVA 小程序”下的“启用”选项,选择此选项后将允许 Internet Explorer 在页面上显示 JavaScript 元素。 两次单击“确定”按钮关闭窗口。单击“刷新”按钮,用新设置重新载入网页。​Opera浏览器​ 单击 Opera 菜单。在“设置”选项上方悬停鼠标。如找不到 Opera 菜单,只看到传统菜单栏,则单击“工具”。 在“快速偏好”上方悬停鼠标。勾选名为“启用 JavaScript”的复选框。 刷新当前网页。这将载入您的新设置。​Safari浏览器​ 单击 Safari 菜单。选择“偏好”,然后单击“安全”选项卡。 确保“启用 JavaScript”选项已勾选。如未勾选复选框,则 JavaScript 在网页上不载入。 在 iOS 设备上启用 Java。点击“设置”图标,向下滚动至 Safari 部分。点击“高级”,然后将 JavaScript 选项切换到“开启”​


ajax(Web数据交互方式)

引用框架(封装好了代码)——引入一个JS文件

ajax不需要传到后台。

–js的一种吧。

ajax验证—————>

login.html

Ajax登录帐号:密码:​$('button').click(function () {$.ajax({type:'post',url:'ajax.php', //发给ajax.php文件。dataType:'json',data:{myUname:$('.user').val(),myUpass:$('.pass').val() },success:function (res) {//console.log(res);if(res.infoCode==1){alert('登录成功'); }else{alert('登录失败');​ } } });​ });​​

ajax.php

——这里正常情况下要连接数据库取值的。

'ok');if($username=='jinhui' && $password=='1'){//这里可考虑连接数据库。$success['infoCode'] = 1;}else{$success['infoCode'] = 0;}echo json_encode($success);​?>

绕过

抓包——右键-接受数据服务器返回来的数据包——修改一下

登录错误:

——————————————

——这样,只提示一个成功登录,————洞洞!!!

————在ajax.php中写成功登录(由php控制)————GG

————要看逻辑————

如何发现ajax?

直接看源代码

——有的会用包含文件,封装了。——

————看仔细点,点开引用的JS文件!!!


两种验证

——对文件上传的后缀名进行验证,符合需求的才能上传

——这个功能的实现可以由JS或PHP实现

——两种验证的区别:

PHP:验证的代码看不到,只能进行黑盒测试 ——后端,服务器

JS:–可以看到—白盒测试 ————前端,浏览器——浏览器可忽略(不用)js代码。

#数据的验证不止后端可以,前端也可以。

php将代码的所有结果给你,

请求——返回——返回结果(服务器不会理你,你就自我安慰吧)

js ajax 用浏览器来处理,

请求——返回——读取返回的数据——js ajax 代码进行解析——结果


设计-购物*

以前端设计价格为准

user.php–购买页面

购买设计1
价格:8888
数量:$('button').click(function () {$.ajax({type:'post',url:'shop.php',dataType:'json',data:{price:'8888',number:$('.num').val()},success:function (res) {//console.log(res);if(res.code==1){alert('购买成功');}else{alert('购买失败');}}});});

shop.php–验证

'ok');$price=$_POST['price'];$num=$_POST['number'];$m=$price*$num;if($m

————抓包——改返回的数据,价格,服务器返回的数据状态值。

#注意是谁处理的那个数据。


GG还有(user1,shop1)(user2,shop2)​

——————只接受数据库的值–给数据写死, 数量,价格

——接收数据库的(注意代码顺序)

–先执行表单,才有数据的接收

——data里面的price可以修改,——


小结:

修改 :状态值,数量,价格,(数据库有无的案例)

–状态值发现技巧:数据包的返回值有json类型格式 json code msgbox code data

写网站:

用框架:vue ,node.js