레이블이 웹 소스 분석인 게시물을 표시합니다. 모든 게시물 표시
레이블이 웹 소스 분석인 게시물을 표시합니다. 모든 게시물 표시

2018. 9. 17.

php :: (스코프 해결 연산자)

php 소스코드를 보면 :: 문자열을 볼 수 있다. 이는 static 이나 constant 와 클래스의 재정의된 프로퍼티나 메서드에 접근할 수 있도록 해주는 토큰이다.

class MyClass {
    const CONST_VALUE = 'A constant value';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // As of PHP 5.3.0

echo MyClass::CONST_VALUE;

위와 같이 클래스 정의의 외부에서 이 항목들을 참조 할 때, 클래스의 이름을 사용한다.

Continue reading

[웹취약점] 소스코드 취약점 점검

소스코드 취약점 점검 관련 간단히 메모


1. 윈도우 일 경우, AstroGrep, Brackets, Everything

2. 유닉스 일 경우는 그저 find, grep,vi 로 다 해결된다.

** grep 명령어 예시
grep -H id /var/www/* 
-> /var/www/ 의 모든 폴더에서 'id' 라는 문자열을 포함하고 있는 모든 파일을 리스트업

grep -iH id /var/www/*
 -> i 를 붙임으로서 대소문자 구별 안함


grep -riH select /var/www
--> -r 옵션으로 하위 디렉토리에 있는 파일까지 검색한다.

** 리눅스 배포판에 따라 grep의 하위 디렉토리 검색이 안되는 경우도 있다고 한다.
그럴 경우, find . -name "*" | xargs grep -n "찾고자 하는 문자열"

find 를 같이 쓰면 좋은 점은 검색할 파일 유형을 지정할 수 있다. 예를 들어 하위 디렉토리의 모든 .c 파일, .h 파일에 대해서만 검색을 수행하고자 할때는 다음과 같이 할 수 있다.

find . -name "*.[ch]" | xargs grep -n "찾고자 하는 문자열"

vi 창 여러개 띄우기
-> sp /var/www/test.php // test.php 가 생긴다.
-> sp는 상하로 분할 하는것, vs 좌우로 분할 하는 것

vi에서 shell 실행하기
:shell 또는 :sh 로 쉘을 빠져나가서 명령어를 실행할 수 있다. 작업 후 exit 또는 ctrl+D 이용해서 다시 vi로 돌아갈 수 있다.



Continue reading

2017. 8. 22.

[Javascript] location.href() / history.back()

location.href.indoxOf("?") 
  • 주소입력라인의 데이터 중에서 "?" 의 위치를 가져온다.
  • 주로 if(location.href.indexOf("/testpage")>0) {..} 이와 같이 url 경로를 파악하고 함수를 실행하는 용도로 사용된다. 
이는 다음과 같이 분리해서 사용할 수도 있다.
var locationHref=location.href; // 현재 브라우저 주소 입력라인의 값를 가져옴
var sectionGet=locationHref.indexOf("?") // 가져온 값에서의 "?" 의 위치를 반환한다.

location.href='/test/testlist.do';
  • /test/testlist.do 페이지로 이동하도록 한다.


history.back()

  • 무조건 브라우저의 한 단계 전 페이지로 이동 // 동작상 history.go(-1) 에 해당한다.

history.go(-2) 

  • 바로 이전에 들렸던 페이지로 넘어가는 것

Continue reading

2017. 8. 8.

[웹의 이해] Form 태그, input 태그

웹 소스 분석할때, 유념하며 봐야 할 코드 form, input 에 대해 정리하려고 한다.

<form action="http://test.test.org/check" method="get">
  <label for="url">url 주소 입력</label>
  <input id="uri" type="text" name="uri" />
  <input type="submit" value="전송" />
</form>
위의 코드에서는 form, label, input 태그 요소에 주목해야 한다.

1) form
  • action 속성은 이 폼을 전송할 url 을 의미한다. 
  • method 속성은 폼에 전송할 방식을 지정하며, GET 방식과 POST 방식으로 나뉜다.
GET 방식 : method 속성 값이 get 인 환경에서, url 주소를 jhnoh.com 으로 입력한 경우에는, 아래와 같이 나타난다. 



즉, 서버가 url=jhnoh.com 로 페이지를 요청받는 다는 것을 알 수 있다. 


POST 방식 : 반면 POST 방식은 URL 에 값이 노출되어 서버에 전달되는것이 아닌, body 부분에 포함되어(일반 사용자에게는 안보임) 전달된다. 

2) input
input 요소는 텍스트 입력 뿐 아니라, 전송 버튼, 라디오 버튼, 체크 박스 등 여러가지로 표한 될 수 있다.

input 요소는 주로 다음과 같이 사용된다.

<input type="text" name="url" />
  • input 요소는 위와 같이 스스로 닫는 태그이다.
  • type  속성을 통해서 인풋의 형태 타입을 결정 할 수 있다. 위 소스 예시는 텍스트 인풋을 나타내며, 이 외에 password, hidden, submit 등 다양한 속성 값이 있다.
  • name 은 데이터가 서버로 전송될 때 할당되는 변수의 이름이다. name 값이 abc 이고 해당 form 이 GET 방식으로 전송된다면, URL 주소에 'ABC=값' 이 붙어서 전송된다. 

<input type="submit" value="전송" />
  • submit 타입의 요소를 클릭할 경우에는 해당 폼안에 있는 값들이 해당 서버로 전송된다. 
  • value 값은 원래 요소의 기본 할당값이나, 버튼 형태에서는 해당 버튼에 표시되는 텍스트이다. 만약 value 속성 값이 없을 경우는, 해당 브라우저의 기본 텍스트로 보여진다. (예를 들어, 크롬이라면 '제출', 파이어 폭스라면, '질의 보내기', IE 라면 '쿼리 전송' 같은 식이다.
  • name 속성을 달아준다면, 해당 변수로 value 값이 전달된다. (name이 send 이고 value가 전송이라면 'send=전송'의 형태로 전달된다. 
<label for="id">아이디 입력</label>
<input type="text" id="id" />

위의 속성과 같이 for 속성에 해당하는 폼 요소의 id 이름을 입력해서 연결한다.
솔직히 label 이 왜 필요한지는 아직 잘 모르겠지만, 웹 접근성 기준 상 폼 입력 요소가 있다면 이에 해당 하는 label 을 반드시 가지고 있어야 한다고 한다.


참고
  • http://webberstudy.com/html-css/html-3/form-1/

Continue reading

Popular Posts

Recent Posts

Powered by Blogger.