Docker Installation on Ubuntu 18.04 :: 2021/04/19 22:11
우분투 18.04 버전 서버에 Docker를 설치하는 방법
sudo apt-get updatesudo apt-get install apt-transport-https apt-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get install docker-ce docker-ce-cli containerd.io
apt-cache madison docker-cesudo apt-get install docker-ce={docker-ce-version} docker-ce-cli={docker-ce-cli-version} containerd.io
docker -v
Ubuntu Server 사용기 :: 2021/03/19 20:45
리눅스 Desktop으로는 Ubuntu를, Server로는 CentOS를 사용해 왔는데,
Secure Coding : 입력 데이터 검증 및 표현 (02) Resource Injection :: 2021/02/02 15:31
<02. Resource Injection : 리소스 주입>
발생 원인 : 외부 입력값이 내부 자원에 대한 식별자가 되는 환경에서 입력값에 대한 검증이 없을 경우 발생
영향 : 시스템 내부 자원 접근, 수정, 자원 간의 충돌 발생
Bad Code : Servie No에 대한 입력값 검증이 없음
public void createSocket() throws IOException {
int def = 1000;
ServerSocket serverSocket;
Properties props = new Properties();
String fileName = "file_list";
FileInputStream in = new FileInputStream(fileName);
props.load(in);
//외부 입력 데이터
String service = props.getProperty("Service No");
int port = Integer.parseInt(service);
//외부 입력 데이터로 소켓 생성
if (port != 0) {
serverSocket = new ServerSocket(port + 3000);
}
else {
serverSocket = new ServerSocket(def + 3000);
}
......
}
Good Code : 외부 입력값에 대한 기본적인 검증 후, 적절한 값을 할당
public void createSocket() throws IOException {
int def = 1000;
ServerSocket serverSocket;
Properties props = new Properties();
String fileName = "file_list";
FileInputStream in = new FileInputStream(fileName);
//외부 입력 데이터
String service = "";
if (in != null && in.available() > 0) {
props.load(in);
service = props.getProperty("Service No");
}
//외부 입력 데이터 검증
if ("".equals(service)) {
service = "1";
}
int port = Integer.parseInt(service);
//외부 입력 데이터에 따른 포트번호 설정
switch(port) {
case 1: def + 1; break;
case 2: def + 2; break;
case 3: def + 3; break;
case 4: def + 4; break;
default: port = def;
}
//검증 완료된 포트로 소켓 생성
serverSocket = new ServerSocket(port);
......
}