仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 533|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇MySQL宁静加固实战

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:32:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!团体延聘国际***宁静厂商对企业信息化体系宁静扫描,发明笔者运维的体系存在SQL注进式毛病、数据库提权宁静毛病、暗码明文及附件上传宁静隐患。因而笔者对该体系实行了系列的宁静加固事情,在宁静厂商举行二次扫描时未再发明宁静隐患。
详细应对办法以下:
1)关于SQL注进式毛病办理计划是如许的在用户对体系举行操纵时起首举行不法字符校验,由于体系已上线不成能在对每个SQL问做PreparedStatement处置以是我经由过程增加一个过滤器action来完成屏障SQL注进毛病,详细完成***拜见以下代码;
点击(此处)折叠或翻开
1、防SQL注进代码以下所示:
packageaction;
publicclassStringUtil{
publicStringUtil(){
}
publicstaticStringreplace(Stringstr,Stringsubstr,Stringrestr){
String[]tmp=split(str,substr);
Stringreturnstr=null;
if(tmp.length!=0){
returnstr=tmp[0];
for(inti=0;i<tmp.length-1;i++)
returnstr=dealNull(returnstr)+restr+tmp[i+1];
}
returndealNull(returnstr);
}
publicstaticString[]split(Stringsource,Stringdiv){
intarynum=0,intIdx=0,intIdex=0,div_length=div.length();
if(source.compareTo("")!=0){
if(source.indexOf(div)!=-1){
intIdx=source.indexOf(div);
for(intintCount=1;;intCount++){
if(source.indexOf(div,intIdx+div_length)!=-1){
intIdx=source.indexOf(div,intIdx+div_length);
arynum=intCount;
}else{
arynum+=2;
break;
}
}
}else
arynum=1;
}else
arynum=0;
intIdx=0;
intIdex=0;
String[]returnStr=newString[arynum];
if(source.compareTo("")!=0){
if(source.indexOf(div)!=-1){
intIdx=(int)source.indexOf(div);
returnStr[0]=(String)source.substring(0,intIdx);
for(intintCount=1;;intCount++){
if(source.indexOf(div,intIdx+div_length)!=-1){
intIdex=(int)source
.indexOf(div,intIdx+div_length);
returnStr[intCount]=(String)source.substring(intIdx
+div_length,intIdex);
intIdx=(int)source.indexOf(div,intIdx+div_length);
}else{
returnStr[intCount]=(String)source.substring(intIdx
+div_length,source.length());
break;
}
}
}else{
returnStr[0]=(String)source.substring(0,source.length());
returnreturnStr;
}
}else{
returnreturnStr;
}
returnreturnStr;
}
publicstaticbooleansql_inj(Stringstr){
Stringinj_str="|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,";
Stringinj_stra[]=split(inj_str,"|");
for(inti=0;i<inj_stra.length;i++){
if(str.indexOf(inj_stra[i])>=0){
returntrue;

}
}
returnfalse;
}
privatestaticStringdealNull(Stringstr){
Stringreturnstr=null;
if(str==null)
returnstr="";
else
returnstr=str;
returnreturnstr;
}
//publicstaticvoidmain(String[]args){
//if(sql_inj("test")==true)
//System.out.println("不法字符");
//else
//System.out.println("输出内容正当");
//
//}
}
2、MD5加密代码以下所示:
packageaction;
importjava.security.MessageDigest;
/**
*

*Title:MD5加密和考证
*

*
*

*Description:
*

*
*

*Copyright:Copyright(c)2006
*

*
*

*Company:
*

*
*@authornotattributable
*@version1.0
*/
publicclassMD5{
publicMD5(){
}
/**
*MD5加密ComputestheMD5fingerprintofastring.
*
*@returntheMD5digestoftheinput<code>String</code>
*/
publicstaticStringcompute(StringinStr){
MessageDigestmd5=null;
try{
md5=MessageDigest.getInstance("MD5");
}catch(Exceptione){
System.out.println(e.toString());
e.printStackTrace();
return"";
}
char[]charArray=inStr.toCharArray();
byte[]byteArray=newbyte[charArray.length];
for(inti=0;i<charArray.length;i++){
byteArray[i]=(byte)charArray[i];
}
byte[]md5Bytes=md5.digest(byteArray);
StringBufferhexValue=newStringBuffer();
for(inti=0;i<md5Bytes.length;i++){
intval=((int)md5Bytes[i])&0xff;
if(val<16){
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
returnhexValue.toString();
}
/**
*考证MD5
*
*@paramcompareStr
*String要对照的字符串
*@parammd5Str
*String加密后的字符串
*@returnboolean考证经由过程前往true,不然前往false
*/
publicstaticbooleancompare(StringcompareStr,Stringmd5Str){
StringcomputeStr=compute(compareStr);
if(computeStr.equals(md5Str)){
returntrue;
}else{
returnfalse;
}
}
publicstaticvoidmain(String[]args){
System.out.println("aa:=="+compute("aa"));
System.out.println(compare("aa","4124bc0a9335c27f086f24ba207a4912"));
}
}
2)对数据库提权毛病成绩:1、接纳数据库体系账号与使用账号分别即创立使用步伐必要会见的账号;2、接纳压缩权限并设置指定IP地点能够近程会见数据库;
详细步调:
A)deletefromuserwhereuser="root"andhost!="localhost";
B)flushprivileges;
C)grantselect,insert,update,deleteonitwh.*tomyapp@"10.0.212.122"identifiedby"youpassword";
D)flushprivileges;
3)对用户暗码举行加密保留;
此处利用了md5加密算法完成用户信息利用密文保留,如许带来的优点是运维职员也没法在未经用户受权情形下上岸用户的体系,检察某用户涉密相干信息等。
4)上传附件校验有黑名单变化成白名双方式,详细完成体例因与本文联系关系不年夜在此不再赘述。
欢迎大家来到仓酷云论坛!
小女巫 该用户已被删除
沙发
发表于 2015-1-16 19:53:22 | 只看该作者

带来一篇MySQL宁静加固实战

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
不帅 该用户已被删除
板凳
发表于 2015-1-24 23:09:14 来自手机 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
admin 该用户已被删除
地板
发表于 2015-2-2 17:52:57 | 只看该作者
其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?
小魔女 该用户已被删除
5#
发表于 2015-2-8 05:59:44 | 只看该作者
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
透明 该用户已被删除
6#
发表于 2015-2-25 00:28:11 | 只看该作者
在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-7 18:50:55 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
活着的死人 该用户已被删除
8#
发表于 2015-3-15 19:12:45 | 只看该作者
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
老尸 该用户已被删除
9#
发表于 2015-3-22 04:30:50 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-22 04:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表