无数据库全脚本触发器设想

从有了计算机发展到今天,人类世界被代码完全改造,没有代码就没有如今的五彩斑斓的社会。对为代码的创造而努力的前辈们,我们应该心怀敬意。

接触过代码的都知道,代码需要数据库的支持可以更好的发挥能量。经过数代人的努力,代码机制的完善达到了无人能打破的瓶颈。我对代码的理解并不深刻,也没高深的码码功底,但本着自己对现有的代码的分析,大胆提出无数据库全脚本触发器设想。不是对前辈们创造的代码的质疑,只是我个人对代码的一个愿景。

数据库的出现,给了代码一个近乎完美的缓冲,我们可以借助代码写入我们想要存储的数据到数据库里。数据库在代码里演绎着无与伦比的重要性,也因此,更多的网络安全破坏都是从数据库开始。无论哪种类型的数据库,都需要语句指令来触发数据库的功能,所以语句指令成为了最大的安全隐患!而这数据库的漏洞只能靠补丁和代码的完善,这样的因数下,对代码的要求节节攀升,令很多做软件或者网站的创始人更大的压力。早在6年前,我就思考过,如果要抛弃数据库,那会怎样?6年来,我做过若干代码测试,发现没有数据库也是可行的。

了解代码的都知道,现有的网站账户登入管理机制都是采用cookie和session双验证,或许还有其他我不清楚的方式。该两机制都是读取数据库用户数据表存入请求访问的用户使用的计算机本地浏览器中,既然这样,为何我们不另辟蹊径直接用代码赋值存入验证机制?当然,这早在四年前就有人实现了,我没记错的话,第一次被发现的时候居然是网页木马后门,不记得这具有登入验证的网页木马后门的原创作者是哪位代码前辈,但无疑他的这种方式验证了我的设想的可行性。我也知道,抛去数据库,无疑是一次代码革命!但这设想经过几年在我脑海里盘旋,越发的肯定,代码的魅力和潜力是无限的,没有数据库的代码会比有数据库更加的优秀,至少在安全上不再有数据库语句指令的漏洞带来的代码威胁,至少可以更加的精简代码,使得运行更流畅也更方便查阅。。抛去了数据库也给硬件减少了压力。相信很多人都知道netbox的存在,而netbox的官方网站就是用netbox搭建的,他的官网从未被串改过,也有很多能人做过测试,都以失败告终!并不是服务器多好,netbox的服务器还不如上网本呢,可就这样,代码上确实防御无敌!明眼人都看的出,该网站是纯静态的。是啊,静态没有数据库语句,没有可执行命令,所以不再有被利用的机会,甚至一些网络安全破坏方式比如cc攻击都对静态代码无效!

静态是最古老的也是web缔造伊始就出现的,经过若干年,还依然彰显着它独特的魅力。从asp、jsp、perl、dll、php、aspx、do等脚本动态脚本的出现,静态html曾一度度淡出代码的舞台。还记得我第一次接触代码,就是asp,那时候正式asp的舞台,网站源码如孔雀开屏一般百家争鸣。然后就是php相继出现了更高层次的姿态。随着动态脚本代码的发展,也给代码的编造者带来了更严峻的考验,代码的漏洞始终是动态脚本的一块硬伤!这样的坏境下,更是有杰出者想出了分离的方法,把网站进行前后台分离,虽然是一度更深层的隐藏了漏洞的存在,可存在的还是始终存在,终究还是会被找到。后来更有甚者,直接有静态代替动态前台,响应访问用户的访问请求,固然让破坏源无法攻击可访问的前台,难道就不能找后台路径?只要是存在的,终究会被找到!而如今众多的网络安全破坏中,无疑是给我们敲响了警钟,除非我们删除动态脚本,否则都有被攻击破坏的可能!

这么多年,我发现一个很奇怪的地方,就是静态完全可以抵御来自脚本的攻击。相信不只我一个人在静态脚本上做文章,早五年前,就曾听一国外有人提过她的关于CDN和WAF的设想,她想把动态做静态缓存,被访问时请求得到的是缓存中的静态内容,而WAF可以通过URL重写,当遇到攻击时,被攻击的URL会自动跳转到静态页面,以此防御。这样的技术早就浮出市面,并投入了广泛的应用。可缔造者却不是她。

多年的积累,更加的充实了我的设想,而现有的代码都是依赖于数据库。在一个月前,我就开始了大量的代码测试,终于缔造出一套全新领域的无数据库网站源码,当然不是说我开发的这套代码设计的界面多么美观,我想说,我这套网站代码抛弃了任何类型的数据库。

无数据库全脚本触发器设想

时间: 2024-10-12 01:11:16

无数据库全脚本触发器设想的相关文章

【安卓】数据库基于脚本的"增量更新",每次更新时不需修改java代码、!

思路: 1.当然是基于SQLiteOpenHelper.onCreate(第一次安装程序时调用).onUpdate(升级程序时调用) 2.用"脚本"(脚本制作具体方法问度娘)做数据库升级,文件名标识对应版本,java中根据"上一版本.当前版本"选择执行的脚本. 升级时,修改DB_VERSION(当前版本)即可. DBManager.java: package com.example.test; import java.io.ByteArrayOutputStream

unity 登录注册页面数据传递(无数据库)

unity  登录注册页面数据传递(无数据库) 继上一篇随笔.制作unity登录注册页面. 创建一下脚本: 新建脚本"goa"(存储全局变量方便其他脚本的调用): using UnityEngine;using System.Collections; public class goa : MonoBehaviour { //用户名    public const string name = "M_name";    //密码    public const stri

????双机热备数据库备份脚本 v2.1

Text /* THIS4.0 数据库备份脚本 [作者] Rulition QQ:7355157 [版本] v2.1 [修改] 2010年5月21日15:35:13 完成 2010年5月24日11:35:13 细节修改 2010年5月25日11:31:13 增加[完整备份]前的一致性检查 2010年5月27日10:31:13 检查差异备份的大小,避免过大文件影响差异备份. 2010年5月28日11:14:15 补备份时查看最近是否已做过完全备份. 2010年10月17日21:58:32 切换@备

数据库后台优化——触发器

为了保证数据库的完整性和一致性,很多的时候需要执行多条sql语句才能达到想要的目的. 在一对多的数据库关系中,比如卡号类别与卡号之间的关系.如果要取消某个类别的时候,就要连同齐下的所有卡号都删除.在现实中,注册的时候一般都会进行充值,当我想card表里面写东西的时候,就要向recharge表里面写一条充值记录.完成这两个操作才算完成这个功能的实现. 对于以上的需求,每个功能的实现 都伴随着多条sql语句的执行. 为了解决上面的问题,一共有两种解决方法.一是存储过程,二是触发器.上篇博客中已经讲解

Ubuntu Server下MySql数据库备份脚本代码

明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar.gz的压缩文件格式(2012_04_11是指备份执行时当天的日期), 最后只保留最近7天的备份. 实现步骤: 1.创建保存备份文件的目录:/home/mysql_datacd /home #进入目录mkdir mysql_data #创建目录2.创建备份脚本文件:/home/mysql_data/m

关于无数据库开源项目

也许无数据库开源项目是很多人都不感想的,在我们接触的代码,几乎是依赖于数据库才能更完美的运作,才能有更多的拓展功能,才能满足我们的要求. 如果有一天,发现网站的数据库被破坏了,或者网站数据迁移,你们会怎么做呢? 数据迁移是很多站长都头疼的事,都需要做分卷备份,再在全新的空间安装全新网站程序,再恢复数据.这是多么繁琐的事?如果过程出一点乱子,就会失去很多数据,五蔺曾就为迁移数据深深烦恼过,在去年,我曾为了换网站空间,给原先的论坛做了备份,因为没有通过论坛后台备份,直接从SQL本地文件里拽出来的,是

Zsh安装CMake补全脚本进行CMake命令补全

最近在尝试使用Zsh,发现其补全命令的功能相当厉害.但对CMake命令的补全在默认的5.0.5中好像没有看到,网上找了下关于配置Zsh补全的文章也没有多少.     于是自己动手,发现在Zsh安装目录下有个functions的文件夹,里面都有以_开头的各种补全提示文件,比如_sed,_awk等,于是尝试在网上 下到zsh_cmake补全文件之后,重命名为_cmake放置该文件夹中(注意Windows用户的换行符,在这个上浪费了很多时间,使用 dos2unix可以解决)重新启动Zsh,享受CMak

Mysql 数据库备份脚本

[[email protected] sbin]# more mysqlbackup.sh #If any of your tables run on InnoDB engine #directory to store backups inDST=/backup/dbback# A regex, passed to egrep -v, for which databases to ignoreIGNREG='^snort$'# The MySQL username and passwordDBU

单实例数据库安装脚本

安装脚本 1.1_preusers.sh #!/bin/bash #Purpose:Create 3 groups named 'oinstall','dba','oper', plus 1 users named 'oracle'. #Also setting the Environment #variable for oracle user. #Usage:Log on as the superuser('root'),and then execute the command:#./1pre