Back/Server

    AWS 로드밸런스 ACL 적용 EC2 WAF, ACL

    이번 프로젝트에서 보안과 악의적 중복 요청 방지에 대해 고민하다 WAF를 선택했다. 물론 악성 쿼리나 중복 방지등등 여러 예외처리도 프론트와 백단에서 처리해야겠지만, 아무리 신경쓴다고 해도, 현재의 상황에선 한계점이 있을 것이라 생각했다. AWS에서 규칙을 제공한다는 이야기를 듣고 도입해보기로 했다. 적용할 때 레퍼런스가 딱히 없어서 AWS 공식 문서를 보고 적용했다. 기본 정의 AWS WAF는 가용성에 영향을 주거나, 보안을 위협하거나, 리소스를 과도하게 사용하는 일반적인 웹 공격으로부터 웹 애플리케이션이나 API를 보호하는 데 도움이 되는 웹 애플리케이션 방화벽입니다. AWS WAF에서는 SQL 주입 또는 사이트 간 스크립팅과 같은 일반적인 공격 패턴을 차단하는 보안 규칙 및 사용자가 정의한 특정 트..

    AWS EC2 HTTPS

    잘되던 소셜로그인이 안된다는 이야기를 듣고 수정을 하는데 원인을 알 수 없었다. 가만 뒤져보니 이거 콜백url이 이상하게 https에 빨간줄이 그어져 있는게 아닌가.. https를 파이썬에서 90일마다 갱신시켜주는 것으로 붙여놨는데, 얼마전에 무슨 일이 있던건지 빨간줄이 그이며 모두 http로 바뀌었다. 나만 이런게 아니라 유명한 사이트들도 빨간줄이 그인 것을 보고, 구글 정책이 바뀌지 않았나 예상해본다. 그래서 AWS내에 있는 Certificate Manager, Route53, Load Balancer 를 이용하여 HTTPS를 붙이기로 했다. Route 53에 들어간다. 호스팅영역 & 등록된 도메인 둘 중 하나 선택 2-1. 이미 도메인을 가지고 있다면 호스팅 영역에 도메인을 입력하고 퍼블릭 호스팅 ..

    Nodejs Redis 활용

    Nodejs Redis 활용 사용한 예시 exports.diaryMainWeightUpdate = async (req, res, next) => { try { const member = res.locals.member; const { weight, created_at } = req.body; const monthFirstDay = moment(created_at).startOf('month').format('YYYY-MM-DD'); const connection = await mySqlDbRds.getConnection(async conn => conn); const [weightUpdate] = await connection.query(query.weightUpdate, [weight, member.m..

    리눅스, Node.js, mongoDB 설치 명령어

    언제나 요청에 응답하려면, 1) 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야하고, 2) 모두가 접근할 수 있는 공개 주소인 공개 IP 주소(Public IP Address)로 나의 웹 서비스에 접근할 수 있도록 해야한다. 서버는 단순 컴퓨터를 뜻함. Node.js로 만든 것도 마찬가지 따라서외부 접속이 가능하게 설정한 다음에 내 컴퓨터를 서버로 사용가능 파이썬은 nohup으로 계속 자동실행시켰는데, Nodejs는 아직 pm2말곤 모르겠다. git bash에서 ssh 접속하기. ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피 ex) ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20 간단한 리눅스 명령어 ls: 내 위치의 모든 파일을 보여준다. ..

    파일 업로드

    파일 업로드 예제 PYTHON @app.route('/diary', methods=['POST']) def save_diary(): title_receive = request.form['title_give'] content_receive = request.form['content_give'] ## 파일 받는 것 ## file = request.files["file_give"] # 확장자를 구분하기 위한 것. 가장 마지막에 있는 .을 제거하고 마지막 것을 가지고옴 extension = file.filename.split('.')[-1] # 시간을 가지고 오는 것 today = datetime.now() mytime = today.strftime('%Y-%m-%d') filename = f'file-{myt..