반응형

IT 31

nodejs mysql사용시, SQL Injection 방어하기

DB를 사용하는 경우, 항상 유의해야 하는 점. SQL Injection... SQL Injection이란 DB쿼리를 사용시에, query string 값을 넣는 경우가 99.9999%인데 (심지어 유저 ID), 이때 파라미터 값에 특수 문자와 문법들을 이용해서 쿼리를 무력화하고 권한을 획득하는 것을 의미한다. https://namu.wiki/w/SQL%20injection nodejs로 mysql npm을 사용하고 있는데, 어떻게 방어하는지 궁금해서 검색해보니, 아래와 같이 하면 된단다. escape escape는 문자열을 인코딩하는 걸 말한다. const getUser = function (chat_id) { return connection.query(`SELECT * FROM USERS WHERE ..

IT/nodejs 2022.01.19

Visual Studio Code - Remote Control (SSH) 접속 에러 해결 방법

라즈베리파이4에 라즈비안OS를 깔고, Windows 10의 Visual Studio Code를 통해 원격 접속해서 개발하고 싶어서 확장 프로그램을 설치해서 접속하는데 자꾸 접속이 실패한다. putty, vncviewer 모두 정상적으로 접속이 되는데 유독 Visual Studio Code의 Remote Control만 안된다. 뭐 이따구가... 열심히 검색한 결과..한가지 방법을 찾아냈다. 64비트 OS인 경우 호환이 되지 않는 것. 아무래도 arm 아키텍쳐와 각종 실행 파일들(node.js)의 컴파일된 아키텍쳐와 충돌이 나는 듯 하다. 1. 라즈베리파이 터미널에서 아래 명령어 입력해서 클린 삭제 rm -fr ~/.vscode-server/ 2. /boot/config.txt 수정 (에디터 프로그램은 v..

IT/RaspberryPi 2022.01.09

안드로이드 TabLayout 탭의 아이콘 색상 자동으로 변경

안드로이드 TabLayout에 아래와 같이 텍스트(탭 설명)없이 아이콘으로 표현하고 싶은 경우가 있을 수 있다. 이럴 경우, 선택된 탭의 아이콘의 색상은 파란색, 선택되지 않은 탭들은 회색과 같이 색을 표현하고 싶을 때 유용하게 쓰이는 방법을 설명하고자 한다. 아이콘 이미지가 벡터 이미지(SVG)인 경우, 손쉽게 적용이 가능하다. 1. 프로젝트 폴더에 res/color 폴더에 아래 XML파일을 작성하여 추가해준다. > res/color/main_tab_color_selector.xml 여기서 아이템의 색상을 변경해주면, 선택될 경우는 흰색, 선택되지 않은 경우 짙은 회색으로 설정된다. 2. 레이아웃에서 tabLayout - tabIconTint 속성을 위에서 만든 속성으로 선택해준다. > @color/m..

IT/Android 2022.01.08

Telegram Bot inline keyboard 구현

nodejs 로 텔레그램 inline keyboard를 구현하는 방법 inline keyboard란? 왼쪽과 같이, 텔레그램 명령어를 입력하면, 설명과 함께 메뉴가 나타나는 것을 의미한다. 정확하게 이야기 하면, 텔레그램에서는 해당 버튼을 '키보드'라고 표현한다. 왜냐하면, 기존에는 채팅 메시지 입력 창(키보드)를 누르면 해당 키보드에 입력 자판 대신 메뉴가 뜨도록 구현이 되어 있어서, 단순히 '키보드'라고 표현하고 있는 것 같다. 근데 점차 UI의 혁신(?)으로 키보드 또한, 채팅창으로 이동하여 마치 메뉴 처럼 나타낼 수 있게 되었다. 이것을 'inline keyboard'라고 표현하는 것이다. 자세한 내용은 공식 사이트를 참고하시라. https://core.telegram.org/bots/2-0-in..

IT/nodejs 2022.01.07

Android RecyclerView의 Item 삭제 하는 방법(버그 회피)

각종 Android RecyclerView를 찾아보면 아주 간단하게 item을 삭제하는 방법이 소개되어 있다. binding.recyclerView.adapter!!.notifyItemRemoved(position) 하지만, 실제로 잘 동작하는지는 직접 코드를 입력해서 테스트 해봐야 알 수 있다. 나의 경우, 분명 item을 List에서 삭제하고, 위 함수를 호출했지만, RecyclerView의 아답터에 있는 아이템 리스트의 사이즈는 갱신되지 않았다. 즉, 데이터 사이즈는 분명 삭제해서 (-1) 되었지만, 뷰에서 받아오는 position값은 삭제되지 않은 position값을 뷰가 알려준다. 이 버그는 보통 리스트에 아이템이 3개 있다고 가정하면, 시나리오1) 두번째 아이템 삭제 -> 리스트 사이즈 2, ..

IT/Android 2021.12.26

PS4 9.00 탈옥 방법

① 본체 펌웨어를 9.00 으로 업데이트 펌웨어는 아래에서 다운받으면 됩니다. https://darthsternie.net/ps4-firmwares [수동 업데이트 방법] 1. PC 또는 Mac에서 FAT32/exFAT로 포맷된 USB 드라이브에 "PS4"라는 폴더를 만듭니다. 이 폴더 안에 "UPDATE"라는 다른 폴더를 만듭니다. 2. ①에서 다운로드 받은 업데이트 파일(아래의 버튼)을 복사하여 "UPDATE" 폴더에 붙여넣기 합니다. 파일명은 변경 없이 "PS4UPDATE.PUP"로 저장합니다. 3. USB 드라이브를 PS4 콘솔에 꼽습니다. 4. PS4 안전 모드 콘솔 부팅 PS4 전원 OFF PS4 본체의 전원 버튼을 길게 누르고 있다가 두 번째 신호음이 들리면 버튼을 놓습니다. 5. 안전 모드..

[티스토리 플러그인] 티스토리 소스코드를 예쁘게 보이게 하자

세팅 하는 방법은 아래에 자세하게 나와 있으니 참고하세요. http://keyserbetzman.tistory.com/6 소스코드를 작성할 때는 아래와 같이 해주면 된다고 합니다. 플러그인 사용하기 플러그인은 글을 작성하실 때 사용하실 수 있는데요. 소스코드를 입력하시고 HTML모드로 변경하신 다음에 해당 소스코드 가장 처음에 를 추가하시고 마지막에는 를 추가하시면 적용됩니다. 그리고 brush: 옆에는 적용할 언어를 입력하시면됩니다. Brush name Brush aliases File name ActionScript3 as3, actionscript3 shBrushAS3.js Bash/shell bash, shell shBrushBash.js ColdFusion cf, coldfusion shBrus..

IT 2017.08.11

Python 한글 오류 에러 문제

파이썬의 경우 기본적인 설정 상태에서, 코드내에 한글이 있는 경우 다음과 같은 오류가 발생합니다. SyntaxError: Non-ASCII Character 관련된 에러라고 부릅니다. 코드 내에 한글을 파이썬이 읽어들이지 못해서 발생되는 에러라고 보시면 됩니다. SyntaxError: Non-ASCII character '\xec' in file D:\app\views.py on line 41, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 해결방법은 간단합니다. 파이썬 코드 맨위에 한글 인코딩을 하도록 명령해주면 됩니다. # -*- coding: utf-8 -*- # parser.py import reques..

IT/Python 2017.08.11

Python 웹크롤러 ChromeDriver 실행시 반응이 없을 때 처리 방법

파이썬으로 웹 크롤러 제작시, Chromedriver가 예외처리 없이 잘 실행되는데, 반응이 없이 아래와 같이 실행되는 경우가 있다. Traceback (most recent call last): File "chromedriver_test.py", line 4, in driver = webdriver.Chrome() File "/home/hodle/.local/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__ desired_capabilities=desired_capabilities) File "/home/hodle/.local/lib/python3.5/site-packages/selenium/..

IT/Python 2017.08.11

Python 웹 크롤러 ChromeDriver 예외 처리(권한)

browser = webdriver.Chrome() 실행시, 다음과 같이 권한 오류가 발생하는 경우.... Traceback (most recent call last): File "/home/hodle/.local/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 74, in start stdout=self.log_file, stderr=self.log_file) File "/usr/lib/python3.5/subprocess.py", line 947, in __init__ restore_signals, start_new_session) File "/usr/lib/python3.5/subprocess.py", line 1551..

IT/Python 2017.08.11
반응형