9. SQL注入
谈SQL一般会离不开SQL注入的话题,什么是SQL注入进击呢?
假设有个表单,支撑用户萌芽本身在某个处所的订单,如下图所示:
所写的SQL语句是如许的:
userId根据用户的上岸信息可以知道,而state则应用用户传来的数据,那么就变成了一道填(song)空(ming)题,如下图所示:
正常的萌芽如下图所示:
是以如不雅产生这种情况的话,须要让后端把ID算作字符串的方法传给你。这个我在《 为什么0.1 + 0.2不等于0.3? 》这篇文┞仿琅绫擎做过评论辩论。
如今进行脚本注入,如我要查一下所有效户的订单情况,如下所示:
- select * from order_data where user_id = 514694887070560 and state = ‘ CA’ union select * from order_data where ”=’ ‘;
因为数据库是放在长途办事器,我怎么知道你这张表叫做order_data呢?这就须要猜,根据一般的定名习惯,如不雅order_data纰谬,那么对方办事将会返回掉足,那就再换一个,如order/orders等,赓续地猜,一般可以在较少次数内估中。
我还猜测有张用户表,存放着用户的暗码,要查一下某小我的暗码,履行以下SQL语句:
- select * from order_data where user_id = 514694887070560 and state = ‘CA’ union select order_id, order_data.user_id, price, address, user.password as city , zipcode, state, format_city, date, lat, lng from order_data join user on user.user_id = order_data.user_id and ”=”;
结不雅如下:
综合以上,本文谈到了本地存储的三种方法:
- localStorage/sessionStorage
- Web SQL
- IndexedDB
- var specilaData = {
- orderId: 'hello, world',
- text: "goodbye, world"};
- var orderStore = db.transaction("order_data", "readwrite").objectStore("order_data");
- orderStore.add(specilaData).onsuccess = function(event){
- orderStore.get('hello, world').onsuccess = function(event){
- console.log(event.target.result);
推荐阅读
人平易近法院大年夜数据治理和办事平台已经汇聚了全公法院1.08亿件案件信息,成为全世界最大年夜的审判信息资本库。在聪明法院扶植中,发掘这些司法大年夜数据的潜在价值,应用云计算等技>>>详细阅读
本文标题:前端与SQL
地址:http://www.17bianji.com/lsqh/35701.html
1/2 1