Spark
Spark SQL之外部数据源如何成为在企业开发中的一把利器?
SQL之外部数据源如何成为在企业开发中的一把利器?
一、简介#
1.1 多数据源支持#
Spark 支持以下六个核心数据源,同时 Spark 社区还提供了多达上百种数据源的读取方式,能够满足绝大部分使用场景。
CSV
JSON
Parquet
ORC
JDBC/ODBC connections
Plain-text files
注:以下所有测试文件均可从本仓库的resources 目录进行下载
1.2 读数据格式#
所有读取 API 遵循以下调用格式:
Copy
// 格式
(...).option(key
什么是sql注入?我们常见的提交方式有哪些?
WEB安全之SQL注入
引言:
在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:URL地址栏、登陆界面、留言板、搜索框等。这往往给骇客留下了可乘之机。轻则数据遭到泄露,重则服务器被拿下。
1、SQL注入步骤
a)寻找注入点,构造特殊的语句
传入SQL语句可控参数分为两类 1. 数字类型,参数不用被引号括起来,如 2. 其他类型,参数要被引号扩起来,如
b)用户构造SQL语句(如:or 11#;admin#(这个注入又称PHP的万能密码,是已知用户名的情况下,可绕过输入密码)以后再做解释)
c)将SQL语句发送给DBMS数据库
d)DBMS收到返回的结果,并将该请求解释成机器代码指令,执行必要得到操作
e)DBMS接受返回结果,处理后,返回给用户
因为用户构造了特殊的SQL语句,必定返回特殊的结果(只要你的SQL语句够灵活)
下面,我通过一个实例具体来演示下SQL注入 二、SQL注入实例详解(以上测试均假设服务器未开启magic_quote_gpc)
1) 前期准备工作 先来演示通过SQL注入漏洞,登入后台管理员界面 首先,创建一张试验用的数据表:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(64) NOT NULL, `password` varchar(64) NOT NULL, `email` varchar(64) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `username` (`username`) ) ENGINEMyISAM AUTO_INCREMENT3 DEFAULT CHARSETlatin1添加一条记录用于测试:
INSERT INTO users (username,password,email)VALUES(MarcoFly,md5(test),marcofly@)接下来,贴上登入界面的源代码
lthtmlgtltheadgtlttitlegtSql注入演示lt/titlegtltmeta http-equivcontent-type contenttext/htmlcharsetutf-8gtlt/headgtltbody gtltform methodpostgtltfieldset gtltlegendgtSql注入演示lt/legendgtlttablegtlttrgtlttdgt用户名:lt/tdgtlttdgtltinput typetext nameusernamegtlt/tdgtlt/trgtlttrgtlttdgt密 码:lt/tdgtlttdgtltinput typetext namepasswordgtlt/tdgtlt/trgtlttrgtlttdgtltinput typesubmit value提交gtlt/tdgtlttdgtltinput typereset value重置gtlt/tdgtlt/trgtlt/tablegtlt/fieldsetgtlt/formgtlt/bodygtlt/htmlgt附上效果图:
当用户点击提交按钮的时候,将会把表单数据提交给页面,页面用来判断用户输入的用户名和密码有没有都符合要求(这一步至关重要,也往往是SQL漏洞所在)
! lt!--前台和后台对接--gtlthtmlgtltheadgtlttitlegt登录验证lt/titlegtltmeta http-equivcontent-type contenttext/htmlcharsetutf-8gtlt/headgtltbodygtlt?php $(localhost