作家
登录

前端与SQL

作者: 来源: 2017-06-12 12:11:58 阅读 我要评论

9. SQL注入

谈SQL一般会离不开SQL注入的话题,什么是SQL注入进击呢?

—假设有个表单,支撑用户萌芽本身在某个处所的订单,如下图所示:

所写的SQL语句是如许的:

—userId根据用户的上岸信息可以知道,而state则应用用户传来的数据,那么就变成了一道填(song)空(ming)题,如下图所示:

正常的萌芽如下图所示:

是以如不雅产生这种情况的话,须要让后端把ID算作字符串的方法传给你。这个我在《 为什么0.1 + 0.2不等于0.3? 》这篇文┞仿琅绫擎做过评论辩论。

如今进行脚本注入,如我要查一下所有效户的订单情况,如下所示:

  1. — select * from order_data where user_id = 514694887070560 and state = ‘ CA’ union select * from order_data where ”=’ ‘; 

因为数据库是放在长途办事器,我怎么知道你这张表叫做order_data呢?这就须要猜,根据一般的定名习惯,如不雅order_data纰谬,那么对方办事将会返回掉足,那就再换一个,如order/orders等,赓续地猜,一般可以在较少次数内估中。

—我还猜测有张用户表,存放着用户的暗码,要查一下某小我的暗码,履行以下SQL语句:

  1. 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 ”=”; 

结不雅如下:

综合以上,本文谈到了本地存储的三种方法:

  1. localStorage/sessionStorage
  2. Web SQL
  3. IndexedDB
  1. var specilaData = { 
  2.     orderId: 'hello, world'
  3.     text: "goodbye, world"}; 
  4.  var orderStore = db.transaction("order_data""readwrite").objectStore("order_data"); 
  5. orderStore.add(specilaData).onsuccess = function(event){ 
  6.     orderStore.get('hello, world').onsuccess = function(event){ 
  7.         console.log(event.target.result); 

      推荐阅读

      司法大数据 助力社会治理

    人平易近法院大年夜数据治理和办事平台已经汇聚了全公法院1.08亿件案件信息,成为全世界最大年夜的审判信息资本库。在聪明法院扶植中,发掘这些司法大年夜数据的潜在价值,应用云计算等技>>>详细阅读


    本文标题:前端与SQL

    地址:http://www.17bianji.com/lsqh/35701.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)