用web安全添加系统用户的方法

企鹅博客
企鹅博客
企鹅博客
28888
文章
0
评论
2020年9月15日12:51:19 评论 5 views 1061字阅读3分32秒

在网上看到一些通过php直接添加系统用户的解决方法,这些方法都在脚本中保存系统超级用户密码,因此有很大的安全性问题。这里提供的方法是通过php在前台添加用户、密码记录到mysql数据库中,后台通过cron隔时(时间可以自己设定)执行添加用户的程序。程序中都没有记录系统超级用户密码,这样能保证系统的安全。如下为添加用户的后台程序,这个程序只是为很粗糙的演示程序,功能为把ddornot=0 的用户加入系统中而已,仅供读者参考。php添加用户信息到数据库的程序略去。程序在RedHat6.0 下通过。

adduserfromdb.pl

#!/usr/bin/perl
use DBI;
$dbuser = "xxxx";
$dbpasswd = "xxx";
$db = "xxxx";

$dbh = DBI->connect("DBI:mysql:$db",$dbuser,$dbpasswd);
$query = "select user,passwd from usertable where addornot=0";
$sth = $dbh->prepare($query);
$rv = $sth->execute or die "Can’t execute the query:$sth->errstrn";
while(@row = $sth->fetchrow_array) {
#print "user=".$row[0]."n";
#print "password=".$row[1]."n";
@saltchars = (a .. z, A .. Z, 0 .. 9);
srand(time||$$);
$salt = $saltchars[rand($#saltchars)] . $saltchars[rand($#saltchars)];
#print "$saltt$row[1]n";
$encrypt_passwd = crypt($row[1],$salt);
#print $encrypt_passwd."n";
$add_exec = "/usr/sbin/useradd -p ".$encrypt_passwd." ".$row[0];
#对useradd增加参数,可以控制用户的组别、目录、登陆与否、shell等等
#print $add_exec."n";
system($add_exec);
}
#1;

用户信息表
usertable:

CREATE TABLE usertoadd (
user tinytext NOT NULL,
passwd tinytext NOT NULL,
addornot tinyint(4) DEFAULT "0" NOT NULL
);

继续阅读
weinxin
欢迎加入中国站长博客之家
本站的所有资源都会上传分享到博客之家,希望大家互相学习交流进步。
把C++类成员方法直接作为线程回调函数 Linux编程

把C++类成员方法直接作为线程回调函数

我以前写线程时要么老老实实照着声明写,要么使用C++类的静态成员函数来作为回调函数,经常会因为线程代码而破坏封装.之前虽然知道类成员函数的展开形式,但从没想过利用过它,昨天看深入ATL时无意中学会了这...
Struts1配置及调用过程实例详解 Linux编程

Struts1配置及调用过程实例详解

MVC架构是目前web开发中的经典架构,它的核心思想就是将业务代码和视图代码分离,能够有效的理清系统结构,降低系统复杂度和维护难度。在传统的java web开发中采用servlet作为控制器将视图和模...
Java利用smslib发送短信 Linux编程

Java利用smslib发送短信

  自己写一个小程序,我在Java1.6.0_10;smslib-v3.4.5下运行成功.   主要是以下几个类.   Level_Final_Serial.java:串口底层操作   Serial_...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: