SELECT * FROM USER_JOBS;

 

 

job 입력

DECLARE
job_no number;
BEGIN
DBMS_JOB.SUBMIT(job_no,'dbms_output.put_line(''ok'');', SYSDATE,
'SYSDATE + 1');

END;

Posted by 삽지리
,

아래중에 내가 겪은 것은 첫번째 사항임

티베로를 사용할 예정인데 동일한 증상이면 대략 골치가 아픈데...

 

출처 : http://solidev.tistory.com/21

 

 

내가 가장 좋아하는 두개의 라이브러리가 조합시 아쉬운 버그가 있어서 이렇게 남기게 되었다.

이렇게 찾은 버그는 같은 버그로 고민하는 사람들에게 "아! 버그구나" 하고 위안을 삼을 수 있고
불철주야 노력하는 오픈 소스 개발자 분에게 도움이 되었으면 하는 바람이다.


1. 트랜젝션(Transaction) 모드의 경우 반복되는 쿼리 실행 불가 (오라클 oracle) 

List list = sqlmap.queryForList(sqlQuery, parameter);

if(fsmb.getReturnFilter() != null){
for(int idx=0; idx < list.size(); idx++){
list.set(i, this.filtering((HashMap)list.get(idx), fsmb.getReturnFilter()));
}
}

형태로 반복하거나 테스트를 위해서 같은 조건으로 쿼리를 반복하는 경우 log4sql 을 사용하면 

명령문 종료
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OracleStatement.ensureOpen(OracleStatement.java:3546)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3351)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
at core.log.impl.PreparedStatementLoggable.execute(PreparedStatementLoggable.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at core.log.aop.handler.DaoInfo.doAround(DaoInfo.java:97)
at core.log.aop.reflection.profiler.AroundProfiler.invoke(AroundProfiler.java:19)
at $Proxy1.execute(Unknown Source)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:80)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58)
at net.ion.flow.servlet.FlowActionServlet.service(FlowActionServlet.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)


형태의 에러가 발생한다.
log4sql을 안쓰거나 트랜젝션을 안쓰면 문제는 해결된다.
그러나 트랜젝션은 포기할 수 없으니 log4sql 를 빼야한다. (가슴이 아프다 ㅜㅜ)




2. 에러코드 반환값 불일치

SQL쿼리에서 익셉션이 발생하면 에러코드를 반환하는데 log4sql을 쓰면 0 이 반환 된다.
나의 경우에는 에러코드를 가지고 여러가지 처리를 하는데 log4sql을 쓰면서 포기했었다 ㅜㅜ
그만큼 강력하지만 1번문제로 인해서 ㅜㅜ 어쩔 수 없이 이제 log4sql을 사용할 수 없게 되었다.




버그가 어서 수정되는 마음으로 조심스레 개발자 분에게 트랙백 걸어본다.
Posted by 삽지리
,
https://howsecureismypassword.net/

 

Posted by 삽지리
,

sc start 서비스명

과 같이 bat파일을 만든후에

관리자 권한으로 실행시키면

서비스를 구동시킬수 있다..

구동시키코 싶을때만 쓰는 방법

Posted by 삽지리
,

ajax 사용시 그에 맞는 객체를 가져와서 typeof 로 걸르는 도중에 몇번의 unknown 이 떨어지면서 에러가 난다.

ajax 사용을 위한 구문을 가져오면서 에러가 나는 것같음..

아직 확실한 해결방법으 나오지 않았으나 히스토리를 위해 게시물을 남김

재현방법은

해당페이지에서 한번 실험후

그 페이지에서 f12를 누른후 문서모드등을 바꿔본다..

그러면 다시 그페이지 가서 해보면 문서모드를 원래대로 바꾸던 뭘하던 에러가 뜨는것..

자세한 사항은 더 알아봐야할 듯 하다.

--------

알아본 결과

 

 // create XMLHttpRequest object
    if ( window.ActiveXObject ) {                           // IE5.5,6,7
        var activex = JKL.ParseXML.HTTP.ACTIVEX_XMLHTTP;    // IXMLHttpRequest
        if ( this.method == "GET" && ! this.textmode ) {
            // use IXMLDOMElement to accept any mime types
            // because overrideMimeType() is not available on IE6
            activex = JKL.ParseXML.HTTP.ACTIVEX_XMLDOM;     // IXMLDOMElement
        }
        // debug.print( "new ActiveXObject( '"+activex+"' )" );
        this.req = new ActiveXObject( activex );
    } else if ( window.XMLHttpRequest ) {                   // Firefox, Opera, iCab
        // debug.print( "new XMLHttpRequest()" );
        this.req = new XMLHttpRequest();
    }

 

 

이런방식으로 xhr 객체를 가져오고 있는데

ie10의 경우 XMLHttpRequest을 가져와야하지만

ActiveXObject를 가져오게되어 있다.

그래서

 저 구문 다음에

this.req  = jQuery.ajaxSettings.xhr();

를 넣어 제이쿼리의 xhr 객체를 가져오는 함수를 사용했다.

Posted by 삽지리
,

file

 

-----

/**
 * <pre>
 * ${package_name}
 * ${file_name}
 * </pre>
 *
 * @Author : 윤태성(sabjili)
 * @Date   : ${date}
 * @Email  : sabjili@naver.com
 */

-----

 

Posted by 삽지리
,

var a = 0.6+0.3;
 alert(a);

 

0.8999999999 가 뜬다..

 

다른 예제

var a = (0.6+0.3)*10; //9

 

var a = (0.6+0.3)*100; //89.99999999998

 

var a = (0.06+0.03)*100; //9

 

 

var a = (0.06+0.03)*100; //9

 

var a = (0.03+0.06)*10; //0.8999999999

 

 

흠.. 심오하군..


 

Posted by 삽지리
,

 

 

 

프로그래밍을 하다보면 느끼는 것중에..

 

한사람의 유능한 사람이 많은 일을 할 수 있는 것은 확실하지만..

회사에서 그 사람이 나감으로써 많은 업무 공백이 생기는 것을 봐왔다.

회사의 입장에서는 같은 일을 쉐어링하는 여러명을 두는 것이 좋다고 생각한다.

혹은 시스템 자체를 초인적인 한사람에 의존 할 수 밖에 없는 복잡한 구조에서 누구나 할 수 있도록 시스템을 만드는 것이 중요하다고 생각한다.

메뉴얼을 만드는 작업이 그중 일부라고 할 수 있겠다.

 

Posted by 삽지리
,

정규식

카테고리 없음 2013. 4. 9. 16:43

 

 

alt가 없는 태그 찾기

<img\s+((height|src)\s*=\s*("[^"]+"|'[^']+')\s*)* />

 

원리는 height|src등 들어갈수 있는 속성들을 모두 열거하돼 alt를 제외시킨다.

그러면 해당 값들만 있는 것들을 찾아낸다.

단점으로는 만약 img태그에 열거하지 않은 속성이 들어갈경우 못찾아낸다.

Posted by 삽지리
,

 

참조 : http://laughfool.tistory.com/50

 

------------------------------ 내용 ----------

XST 라는 공격에 대해 알아보겠습니다.

사실 모의해킹 시에 많이 사용하지는 않는 기법이지만, 그래도 알아봅시다 ㅋㅋ


1. XST 공격이란?

 XST 공격이란 기본적으로 HTTP 메소드 중 하나인 TRACE메소드를 이용한 XSS기법 중 하나입니다.

서버에서 TRACE 메소드를 지원하고 있을 때, 클라이언트가 서버로 TRACE 요청을 보내면 서버는 요청받은 메시지를 그대로 반환하여 응답합니다. 이때 TRACE요청에 의해 반환되는 응답에는 사용자의 쿠키정보 등과 같은 중요정보도 포함되게 되는데 이걸 가로채는 공격입니다.

TRACE 메소드를 이용한 요청을 보내기 위해서는 XMLHTTP 나 XMLDOM을 주로 이용하게 됩니다.


2. XST 공격은 어떨때 쓰나요?

 그냥 XSS로 공격하면 되지 왜 굳이 불편하게 XST공격을 사용할까요?

XSS공격을 통해 쿠키를 탈취하게 되면 HttpOnly와 같은 기능을 이용하여 쿠키탈취에 대해 방어를 할 수 있지만, TRACE 명령을 이용한 XST에서는 HttpOnly기능을 우회하여 쿠키탈취가 가능하기 때문입니다.


3. 그럼 XST 공격은 어떻게 하나요?

<script type="text/javascript">
if ( navigator.appName.indexOf("Microsoft")!=-1)
{
  var xmlHttp = newActiveXObject("Microsoft.XMLHTTP");
  xmlHttp.open("TRACE", "./", false);
  xmlHttp.send();
  str1=xmlHttp.responseText;
  alert(str1);
}
</script>


4. 방어는 어떻게 하나요?

[Apache]
 Apache의 경우 httpd.conf 에서 아래와 같이 HTTP 메소드를 제한할 수 있습니다.

 <Directory />
 <LimitExcept GET POST>
  Order allow,deny
  deny from all
 </LimitExcept>
 </Directory>


[IIS]
 IIS의 경우 WebDAV를 중지하거나 URL Scan과 같은 툴을 사용하여 HTTP메소드 제한할 수 있습니다.
(http://technet.microsoft.com/en-US/security/cc242650.aspx#e)


[Tomcat]
WEB-INF\web.xml 에 아래와 같이 설정

<security-constraint>
   <web-resource-collection>
   <web-resource-name>Forbidden</web-resource-name>
       <url-pattern>/*</url-pattern>
       <http-method>HEAD</http-method>
       <http-method>PUT</http-method>
       <http-method>DELETE</http-method>
       <http-method>TRACE</http-method>
   </web-resource-collection>

   <auth-constraint>
       <role-name></role-name>
   </auth-constraint>
</security-constraint>



 

Posted by 삽지리
,