- 博客(10)
- 资源 (3)
- 收藏
- 关注
原创 提高postgresql安全性(三、转义符和SQL注入)
在SQL标准中,转义字符串中的'是转义为''(两个单引号),可是很多客户端软件都转义为\'(反斜杆+单引号),为了兼容,若将backslash_quote设为on,将允许\'存在,但对某些客户端编码是不安全的,其中就包括我们gbk编码,因为汉字gbk编码有些字符的末位在数值上等同于\(值为0x5c),某些客户端软件会将这些字符转义错误,导致出现不应该出现的\'而被SQL注入。默认为on:字符串中的反斜杆\ 不起转义作用。(如utf8)或者多测试一下你的转义程序,用最后编码为0x5c 的字符多测试一下。
2024-02-22 14:04:00 428 1
原创 提高postgresql安全性(二、超级用户的隐患)
所幸的是lo_import、lo_export存取操作系统文件的权限依赖于服务器运行postgresq操作系统用户的权限,如果是系统管理员administator身份运行postgresql,那就可以修改服务器上的任何文件。所以postgresql在设计时是不允许系统管理员初始化和运行数据库的,然而在文件系统没有权限设置功能的操作系统如WIN7、XP等非服务器版的电脑上,postgresql是可以以系统管理员身份运行的,所以在这些系统上运行postgresql是十分危险的事。
2024-02-22 13:42:12 138 1
原创 提高postgresql安全性(一、关于权限)
以下讨论以postgresql 10版本为例关于权限:如果没有授权,默认情况下:所有表、schema都无法读取,但数据库任何用户都可以连接,函数任何用户可以执行。默认权限可用 ALTER DEFAULT PRIVILEGES进行修改,但修改默认权限只是对新建的对象起作用,对已建立的对象不起作用。 默认情况下,数据库任何人都可以连接,若要提高安全性,需用 REVOKE ALL ON DATABASE .. FROM PUBLIC, 再对特定的用户一个个授权。除此外,也可以通过pg_hba.conf..
2021-09-30 16:12:15 644
原创 浏览器标签页的localStorage、sessionStorage、cookie问题
一个浏览器应用程序的各个运行实例的各个标签页拥有各自的DOM空间、Javascripts空间、sessionStorage,但对于一个同源网站,这些标签页共享cookie、localStorage。 各个标签页(相当于一个window)关闭,DOM空间、Javascripts空间、sessionStorage生命期也结束,但localStorage永久保存,有expires date的 cookie结束于过期日期,没expires date的cookie(结束于session)并不会立刻结束,必须直到整个
2021-04-03 10:37:04 703
原创 PostgreSQL的SSL部署
随着云服务器的兴起,越来越多的数据库服务器被安装在远程。用SSL连接代替明文连接,是数据库的基本安全功能。很庆幸PostgreSQL很早就支持openSSL,各发行版本都带有openSSL连接库(libeay32.dll和ssleay32.dll,可能还有某版本VC运行库)。PostgreSQL的SSL连接分两块:1、服务端的SSL验证:用SSL连接代替明文连接以防止网络包被窃听和防止他人伪装成服务器2、客户端的SSL验证:用客户端SSL证书登录代替密码登录。本文只讲第一块:服务端的SSL验证。以下
2020-06-03 14:48:33 1912 1
原创 postgresql:如何上传二进制数据
PostgreSQL的二进制数据类型为bytea,可最多保存2G的数据。在ADO、ODBC等接口,可通过带参数化的插入SQL语句上传二进制。 然而在某些接口、SQL语句无法进行参数绑定,或者某些语言没有二进制的类型,或者接口的不兼容等原因,常无法上传二进制数据。 碰到这种情况下,必须在客户端将二进制转化为一定规则的字符序列,然后插入语句时,来个显示转换cast(字符序列 a
2009-10-14 22:25:00 2510
原创 第三方工具导入导出PG可能出现的问题
对于PostgreSQL,导出、导入一般用自带的pg_dump和pg_restore或psql. 若要第三方非特制的工具导出,再导入,或者手工写SQL,除了注意触发器和约束等其他数据库必须注意的通常问题外,还要考虑pg中serial问题: 在pg中,插入一个带有serial字段的表,若不指明serial字段值,serial会自动增加一个值,这和其他数据库是一样的。
2009-01-28 07:52:00 942
原创 让postgresql返回服务端的二进制文件
在postgresql的8.2后,加了一个函数pg_read_file,可以读取服务器上的文件返回给客户端。 该文件返回类型为TEXT类型,所以只能读取文本文件,对于二进制文件或者字符集与数据库默认字符集不兼容的文本文件,所读的数据将被截断。 如何能读二进制文件,返回bytea类型呢?经源代码分析,该函数的内置函数其实是可以读取二进制的,只是接口被转化为文本类型,而在PG
2009-01-28 07:48:00 1136
原创 POSTGRESQL 让客户端互相通信
POSTGRESQL 让客户端互相通信在客户端/服务器的工作模式下,客户机处于主动状态,发送请求给监听状态的服务器,后者处理后再将结果返回给客户机。在这种工作模式下,客户端只与服务端联系,因为它不处于监听状态,所以无法收到服务端或其他客户端“不请自来”的信息。这导致一个现象发生:当某个客户端修改了服务端的数据后,其他客户端不能实时获知,以至这些客户端所获取的数据过时。目前解决的主要方法是客户
2007-04-17 11:56:00 1559 2
原创 POSTGRESQL 中如何隐藏存储过程
POSTGRESQL(以下简称PG)是功能强大的开源数据库,在*NUX下表现出色,性能不逊于ORACLE。更主要的是它提供源代码,而且可进行自行修改,用于商业目的。PG的存储过程统一以函数形式存在,调用的时候用SELECT FUNCTION_NAME(ARG...) 或 SELECT OUT_ARG FROM FUNCTION_NAME(IN_ARG...)形式,而不是用CALL语句。PG的
2006-10-10 11:38:00 1300
openssl_vfp.rar
2021-01-27
openssl动态库1.1.1a.rar
2021-01-27
psqlodbc8.01.02++
2007-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人