'스크립트'에 해당되는 글 3건

  1. [Javascript] 'return' outside function definition 문제 해결하기
  2. Javascript 문자열 치환 replaceAll 함수
  3. PHP 개발 - HTML 태그나 스크립트의 작동을 막기 htmlspecialchars

인텔리제(intellij) 계열 IDE에서 Javascript 코드 수정 시 return 부분에 빨간 밑줄이 그어지며, 'return outside function definition' 오류가 발생하는 경우가 있습니다.



[Javascript] 'return' outside function definition' 문제 해결하기


이는 가로()나 괄호{} 기호의 적절치 못한 사용으로 일어나는 문제로 함수 내에서 괄호를 잘 열고 닫지 않았거나, 틀리게 쓴 부분이 있는 것입니다. 이 문제를 해결하면 빨간 밑줄이 사라지게 됩니다.

JavaScript에서의 replace는 처음 만나는 문자열만 대체합니다. 해당하는 문자열이 뒤에 더 있어도 바꾸지 않습니다. 모두 바꾸기(Replace All)의 효과를 보고 싶은데 그러지 못하죠. 이를 위한 함수가 있습니다.



Javascript 문자열 치환 replaceAll 함수

아래 함수를 사용하여 해당하는 문자열을 모두 치환할 수 있습니다.

function replaceAll(str, searchStr, replaceStr) {
return str.split(searchStr).join(replaceStr);
}

replaceAll(문자열, 찾을 문자열, 덮어쓸 문자열);


사용 예)

replaceAll("hi hello hi" , "hi", "hello");


반환값)

hello hello hello


PHP를 활용하여 개발을 하다 보면 DB에 저장되어 있는 글을 가져와 표시해야할 때가 있습니다. 그럴때 DB 내용에 HTML 태그나 여타 스크립트가 포함되어 레이아웃이 사용자 임의대로 변경되거나 XSS 공격에 사용될 수 있습니다.


DB에서 불러올 때 문자열을 변환해 이런 태그나 스크립트의 작동을 막아주는 함수입니다.


 PHP 개발 - HTML 태그나 스크립트의 작동을 막기 htmlspecialchars



PHP 사용 예시

echo htmlspecialchars($content);



위와 같이 하면 만약에 $content 변수에 <script>를 집어넣으면 &lt;script&gt;로 변환되어 더이상 스크립트의 역할을 하지 못하게 됩니다.




하지만 사용자가 브라우저로 보는 상에서는 <script> 문자열로 잘 보입니다. 


주로 인터넷 게시판에서 글 작성시 스크립트로 동작하지 않고 문자열로 잘 보이는 것과 같은 원리입니다.(HTML 허용시는 당연히 예외)


이 함수에 대한 더 자세한 사용방법이나 설명은 PHP 사이트에서 확인할 수 있습니다.


http://docs.php.net/manual/en/function.htmlspecialchars.php












도움이 되셨나요?

그럼 손가락을 눌러주세요:)