设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网站制作技术 >> 网络敏感程序的编制
精品推荐
网站制作技术点击TOP10
·网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距
·Asp.net可输入下拉框服务器控件
·包过滤规则配置示例
·ISAPI_Rewrite Lite
·一个带搜索功能的网页原代码
·漂亮的日期选择器
·全角/半角的转换函数
·AWStats: Apache/IIS的日志分析工具——在GNU/Linux和Windows平台上的使用简介
·手把手教你如何免费注册国际顶级域名
·Do All in Cmd Shell
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

网络敏感程序的编制

作者: 来源:网络文章 时间:2005-12-17 23:45:25

网络敏感程序的编制(1) 网络敏感程序的编制



Unix系统为程序员提供了许多子程序,这些子程序可存取各种安全属性.有

些是信息子程序,返回文件属性,实际的和有效的UID,GID等信息.有些子程序可

改变文件属性.UID,GID等有些处理口令文件和小组文件,还有些完成加密和解密.

本文主要讨论有关系统子程序,标准C库子程序的安全,如何写安全的C程序

并从root的角度介绍程序设计(仅能被root调用的子程序).



1.系统子程序



(1)I/O子程序

*creat():建立一个新文件或重写一个暂存文件.

需要两个参数:文件名和存取许可值(8进制方式).如:

creat("/usr/pat/read_write",0666) /* 建立存取许可方式为0666的文件 */

调用此子程序的进程必须要有建立的文件的所在目录的写和执行许可,置

给creat()的许可方式变量将被umask()设置的文件建立屏蔽值所修改,新

文件的所有者和小组由有效的UID和GID决定.

返回值为新建文件的文件描述符.

*fstat():见后面的stat().

*open():在C程序内部打开文件.

需要两个参数:文件路径名和打开方式(I,O,I&O).

如果调用此子程序的进程没有对于要打开的文件的正确存取许可(包括文

件路径上所有目录分量的搜索许可),将会引起执行失败.

如果此子程序被调用去打开不存在的文件,除非设置了O_CREAT标志,调用

将不成功.此时,新文件的存取许可作为第三个参数(可被用户的umask修

改).

当文件被进程打开后再改变该文件或该文件所在目录的存取许可,不影响

对该文件的I/O操作.

*read():从已由open()打开并用作输入的文件中读信息.

它并不关心该文件的存取许可.一旦文件作为输入打开,即可从该文件中读

取信息.

*write():输出信息到已由open()打开并用作输出的文件中.同read()一样

它也不关心该文件的存取许可.



(2)进程控制

*exec()族:包括execl(),execv(),execle(),execve(),execlp()和execvp()

可将一可执行模快拷贝到调用进程占有的存贮空间.正被调用进

程执行的程序将不复存在,新程序取代其位置.

这是UNIX系统中一个程序被执行的唯一方式:用将执行的程序复盖原有的

程序.

安全注意事项:

. 实际的和有效的UID和GID传递给由exec()调入的不具有SUID和SGID许

可的程序.

. 如果由exec()调入的程序有SUID和SGID许可,则有效的UID和GID将设

置给该程序的所有者或小组.

. 文件建立屏蔽值将传递给新程序.

. 除设了对exec()关闭标志的文件外,所有打开的文件都传递给新程序.

用fcntl()子程序可设置对exec()的关闭标志.

*fork():用来建立新进程.其建立的子进程是与调用fork()的进程(父进程)

完全相同的拷贝(除了进程号外)

安全注意事项:

. 子进程将继承父进程的实际和有效的UID和GID.

. 子进程继承文件方式建立屏蔽值.

. 所有打开的文件传给子进程.

*signal():允许进程处理可能发生的意外事件和中断.

需要两个参数:信号编号和信号发生时要调用的子程序.

信号编号定义在signal.h中.

信号发生时要调用的子程序可由用户编写,也可用系统给的值,如:SIG_IGN

共6页 9 7 [1] [2] [3] [4] [5] [68 :>

网络敏感程序的编制 相关文章:
网络敏感程序的编制 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com