zoukankan      html  css  js  c++  java
  • 软测:工程与数据库问题

    我们目前接触到的小工程有很多是需要连接数据库才能实现的。例如小型超市管理系统,数据监管网站等。

    这些小工程必然会涉及到SQL注入问题。目前我碰到的问题如下:

    1.最简单的数据库排序规则问题,在mySQL中,数据库存储的数据被分为很多排序规则,默认为 “latin1_swedish_ci”,在此规则下,数据不能为中文,只能为字母和数字,若通过应用程序在数据库中添加不符合规则的数据,会显示乱码或不显示。

    其实这类问题在我当时写程序时很容易发现。。在查了几遍代码后保证并没有什么后台操作是会将数据修改成无意义乱码的情况下,那么显然是数据库出现了问题。

    那么显然,只有两种错误可能,类型和排序规则。简单查阅一下资料便可知使用utf8规则才能支持中文输入。

    2.SQL注入问题。

    定义:利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

    用户在程序端的输入行为是无法预测的,所以要在程序中使用正则表达式等方法对用户的输入数据进行检测,对于后台数据库引擎错误的select命令抛出异常即可。

  • 相关阅读:
    布局神器display:table-cell
    解决IE兼容总汇【转】
    jQuery Validate【强大的表单验证】
    使用信号SIGALRM 为 recvfrom 设置超时,防止死等待
    并发服务器(IO多路复用)
    并发服务器(多进程版本)
    TCP listen()函数内幕
    c++ 重载运算符规则
    内核定时器struct timer_list
    C和arm汇编的相互调用(看书笔记)
  • 原文地址:https://www.cnblogs.com/yi-jie/p/5248927.html
Copyright © 2011-2022 走看看