게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
re: text/html 혼용사용 |
---|
작성자: 송원석
작성일시: 2006-07-06 17:09,
조회수: 3,721
|
안녕하세요? 송원석입니다. ^_^
말씀하신 일명 혼용 게시판에도 여러가지 종류가 있을 수 있겠지만, 각각 나름대로의 요령이 필요할 뿐 특별한 규칙같은 것은 존재하지 않는다고 생각합니다. 예를 들어서 지금 보고계신 이 게시판도 말씀하신 것과 같은 범주에서 본다면 일종의 혼용 게시판입니다. 다음의 게시물을 한 번 살펴봐주십시오. http://www.egocube.pe.kr/cubeboard/contentview.asp?tablename=asp&cpage=1&number=1492 위의 게시물에서 파란색으로 표시되는 부분이 바로 HTML 로 표시되는 부분이고, 그 외의 부분은 모두 텍스트 영역인 셈이죠. 제가 처음 이 게시판을 만들때 가졌던 생각은 이런 것이 었습니다. 일반적인 게시판들은 대부분 일반 텍스트만 지원하는 모드와 HTML 을 제한적으로 허용하는 모드를 가지고 있습니다. 저는 거기에 더해서 코드를 입력했을 때 원하는대로 표현할 수 있는 게시판을 만들고자 했었습니다. 즉 제 사이트를 방문하시는 대부분의 분들이 웹 개발자 분들이실 텐데, HTML 정도는 의도하시는 대로 표현되게끔 하고 싶었습니다. 그래서 글을 작성할 때 HTML 태그나 코드를 입력하고 그 부분을 마우스로 선택한 다음, CODE 라는 아이콘을 누르면, 그 선택된 영역이 특수한 class 속성을 가진 PRE 태그로 둘러쌓이도록 만들었죠. 그렇게 지정된 글은 나중에 내용을 볼 때, 해당 부분의 코드들이 입력된 그대로 나오게 되어 있습니다. HTML 태그도 물론 동작하구요. 대신 보안에는 그다지 신경쓰지는 않았습니다. 어짜피 제 사이트에는 그다지 중요한 내용은 없으니까요. 하기사 회원 정보 같은 것도 일체 요구하지 않으니 말입니다. ^_^;;; 다시 본론으로 돌아와서, 제 게시판의 경우에는 정규 표현식이 바로 내용을 보는 부분에서 쓰입니다. 말씀드렸던 바와 같이 특수한 class 속성을 가진 PRE 태그를 찾아서 그 부분들에서는 HTML 을 허용하고, 나머지 부분들은 인코딩 처리를 하거나 불필요한 내용들을 제거해 버리는 처리를 하는데, 바로 어디에서부터 어디까지에 그 문제의 PRE 태그가 존재하는지를 파악할 때 사용되는 것이죠. 그러나 여기까지 말씀을 드리면 이미 짐작하시겠지만 정규 표현식으로 단 한번에 이러한 작업을 모두 처리하는 것은 불가능합니다. 결론적으로 단순히 기능을 구현함에 있어서 부분적으로 중요하게 쓰이기는 합니다만, 그 외의 부분에서는 여전히 수작업으로 코딩을 해주셔야만 합니다. 이를테면 전술한 PRE 태그들이 하나의 게시물에 다수 존재할 수 있으므로 이에 대한 정보가 상당히 많이 요구되는데, 정규 표현식을 사용하여 PRE 태그의 갯수, 각각의 PRE 태그들의 시작위치, 그 내용의 길이, 내용 자체 등에 대한 정보를 얻어올 수가 있습니다. 그러면 그 정보들을 바탕으로 루프를 돌면서 적절히 처리를 해주는 것이죠. 즉 정규 표현식은 어디까지나 부수적인 도구일 뿐입니다. 물론 사용을 잘 하기만 하면 아주 유용하다는 점은 부정할 수 없는 사실이겠지만 말입니다. http://www.egocube.pe.kr/Lecture/Content/asp-script/200204290001 위의 문서에서 RegExp.Execute() 메소드와 관련된 내용을 살펴보시면 제가 드린 말씀을 더 잘 이해하실 수 있으실 것입니다. 그리고 말씀하신 것처럼 정규 표현식으로도 모든 상황을 다 커버할 수 있는 것은 아닙니다. 예를 들어서 앞에서 말씀드렸던 PRE 태그가 사용자가 편집하는 중에 이상하게 깨졌다던가, 두 번 이상 겹쳤다던가, 또는 우연히도 사용자의 태그와 일치하는 경우에는 열심히 대응하는 코드를 작성해줘야만 하겠죠. 그럼 부분들까지 모두 유효성 검사를 해주는 것은 일반적인 수준에서는 힘들지 않을까 싶습니다. 게다가 SQL 인젝션 공격등에 대응하기 위한 작업이라던지 스크립트 태그에 대한 방어책 등등까지 감안한다면 문제는 더욱 복잡해지므로 단순히 정규 표현식만으로 모든것을 해결하실 수는 없는 것입니다. ^_^ 감사합니다. |
IP 주소: 203.231.54.9
|
전체 2,095 건의 게시물,
84 페이지로 구성된
ASP, ASP.NET, IIS & Script 게시판의
25 페이지입니다.
게시물 | ||||
---|---|---|---|---|
1,536 | 2006-07-11 | 5,962 | ||
1,535 | 2006-07-11 | 3,375 | ||
1,534 | 2006-07-07 | 3,208 | ||
1,533 | 2006-07-09 | 3,299 | ||
1,532 |
최형석 |
2006-07-09 | 1,301 | |
1,531 | 2006-07-06 | 3,678 | ||
1,530 | 2006-07-06 | 3,429 | ||
1,529 | 2006-07-06 | 3,615 | ||
2006-07-06 | 3,721 | |||
1,527 |
댓글 추가 [1] |
정보문 |
2006-06-27 | 1,234 |
1,526 | 2006-06-27 | 3,681 | ||
1,525 | 2006-06-28 | 4,718 | ||
1,524 | 2006-06-28 | 3,337 | ||
1,523 | 2006-06-28 | 3,161 | ||
1,522 | 2006-06-28 | 3,126 | ||
1,521 | 2006-06-24 | 3,444 | ||
1,520 | 2006-06-24 | 3,292 | ||
1,519 |
re: 질문드립니다. [1] |
2006-06-24 | 3,207 | |
1,518 | 2006-06-20 | 3,331 | ||
1,517 |
밝은하늘 |
2006-06-08 | 1,279 | |
1,516 | 2006-06-09 | 3,337 | ||
1,515 |
밝은하늘 |
2006-06-09 | 1,134 | |
1,514 |
밝은하늘 |
2006-06-08 | 1,375 | |
1,513 | 2006-06-08 | 3,316 | ||
1,512 |
무관 |
2006-06-07 | 1,207 |