http://www.noupe.com/ 이건 꼭 AJAX 응용이라기 보다는 UI..
http://www.hotscripts.com/Ajax/index.html
http://www.ajaxpath.com
http://www.dhtmlgoodies.com
http://ajaxpatterns.org/
http://firejune.com/index.php?stag=Prototype
[1](윈도우)
- 내 네트워크 환경 아이콘을 오른쪽 마우스 클릭을 한뒤 맨밑에 속성창에 들어간다 ( 네트워크 연결창이 보일것이다 )
- 그러면 로컬영역 / VMware Network Adapter VMnet1 / VMware Network Adapter VMnet8 이 보일것이다!!
( 그 외에 더있다면..난 모르겠다 ㅡ_ㅡ;;알아서 잘 찾아라 )
- 로컬영역 오른쪽 마우스를 누른뒤 속성으로 들어간뒤 열려진 창의 탭 중에 고급으로 들어가라
- 중간에 인터넷 공유 란에 다른 네트워크 사용자가 이 컴퓨터의 인터넷 연결을 통해 연결할수 있도록 허용을 체크해준다
- 그러면 홈네트워킹 연결 창이 활성화가 될것이다. 그중 VMware Network Adapter VMnet8 를 선택하고 확인
- VMware Network Adapter VMnet8 를 선택하고 오른쪽 마우스 클릭한뒤 속성창을 들어간다
- 인터넷 프로토콜(TCP/IP) 속성창에 들어가서 IP 주소 할당을 자동으로 바꾼다 (GateWay 를 맞춰주는 방법또한있다-모르면비추)
[2](vmware) - 안에 실행되는 리눅스를 가르키는게 아닌다! vmware 프로그램 자체를 말하는것이다!
- 메뉴바에 보면 2번째에 Edit 탭이 있다. 그 안에 Virtual network settings 에 들어간다
- 보통 6개의 탭이 있을텐데 그중 DHCP 를 선택하여 그중 VMnet8 의 subnet 주소를 적어놓는다 (이게 꼭필요하다)
(원활한 설명을 위해 196.168.20.0 이라고 써있다는 가정하에 설명을 하겠다 )
(아마도 다들 3번째 숫자가 같을수도 다를수도있다)
[3](linux)
- vmware 안에 리눅스로 들어가서 netconfig 라는 명령어를 친다 ( 그뒤 ok 를 선택한다 )
- 입력란이 나오는데 첫칸 체크는 하지말고 아래 순서대로 입력한다 (첫째칸은 DHCP 설정란이다. 체크하지말것!)
- IP address : 196.168.20.3 (196.168.???.3 중 ??? 를 제외한 나머지는 나와 똑같이 쓴다)
- Netmask : 255.255.255.0 (이것도 나와 똑같이 쓴다)
- Defalut Gateway(IP) : 196.168.20.2(196.168.???.2 중 ??? 를 제외한 나머지는나와똑같이쓴다)
- Primary nameserver : 168.126.63.1 (이것도 나와 똑같이 쓴다)
- 그뒤 확인 누른뒤 나온뒤에 service network restart 를 입력한다 (그럼 잠깐 리눅스가 네트워크에 관한 부분만 재부팅을한다)
* 안되는분들!! 제발 부탁이건데 내가 시키는대로 따라서 해라!!! 자기 맘대로 뒤에 숫자 0,1 이런식으로 바꾸지말고!
제발 부탁이다 위에 순서대로 꼭해라(하나라도 빼먹으면 실행안된다!!)
자 이제 실험해봐라 실험방법은 2가지이다
외부와 내부로 각각 ping 을날려서 성공하면 된다
외부 : ping www.yahoo.co.kr
내부 : ping 자신의 아이피주소 ( 자기 실제 컴퓨터 아이피 주소를 입력하랏! )
내외부 핑이 전부 잘 나가면 문제 없이 네트워크통신이 이루어진것이다
vmware 안의 linux 를 SecureCRT 라던가 Zterm 같은 SSH 접속 프로그램으로 접속할수 있다!
이때 접속할 IP 주소는 IP address : 196.168.20.3 이 IP 를 입력해서 할것!! (물론 3번째 숫자는 여러분과 다를수있다)
그리고!!! 데비안은 촉 웃겨서
network restart 안된다 ㅋㅋㅋ
할려면 !!!!!
# ifdown eth0
# editor /etc/network/interfaces # tweak as you wish
# ifup eth0
위와같이 해야될것이다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
=================================================================================================
그리고
vmware로 리눅스를 부팅시킨후,
vmware메뉴중 VM->install vmware-tool 선택
리눅스로 돌아와서 가상 시디롬을 마운트 시켜준다.
#mount /dev/cdrom /mnt/cdrom
마운트가 되었으면 /mnt/cdrom 아래에 있는 rpm을 설치하자.
우선, rpm을 리눅스로 복사한다.
그리고 설치...
#rpm -Uvh ~~~.rpm(이름이 생각이 안난다;;; rpm이 하나 밖에 없으니 그거 설치;)
설치가 다 되었으면 /usr/bin/vmware-config-tools.pl 실행
그럼 /mnt/hgfs 가 생성됬을 것이다.
다음과 같은 설정을 해주면 hgfs아래에 윈도우와 리눅스를 공유 할수있는 디렉토리가 생성
된다.
vmware의 메뉴에 VM->setting->option탭->shared Folder->add
다음과 같이 하면 공유할 디렉토리를 써주라는 창이 뜨는데 거기서 위에 칸에는 리눅스에서
윈도우를 공유할 디렉토리명을 써주고,아래 칸에는 윈도우에서 리눅스로 공유할 디렉토리명
을 써주면 된다.
그럼 /mnt/hgfs/공유디렉토리 가 생성된다.
[출처] vmware5.0에서 윈도우와 리눅스의 공유 디렉토리 생성하기|작성자 팔월
1. 테이블 생성
CREATE TABLE `TranTest` (
`num` int(11) NOT NULL auto_increment,
`col01` varchar(32) default NULL,
PRIMARY KEY (`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `TranTest2` (
`num` int(11) NOT NULL auto_increment,
`col01` varchar(32) default NULL,
PRIMARY KEY (`num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 입력 용 프로시저 생성
CREATE PROCEDURE `Prc_TranTest_Input`
(
in in_col01 varchar(32)
)
BEGIN
INSERT INTO TranTest SET col01 = in_col01;
END;
3. SELECT 용 프로시저 생성
CREATE PROCEDURE `Prc_TranTest_Select`
(
in in_col01 varchar(32)
)
BEGIN
SELECT num, col01 FROM TranTest WHERE col01 like concat(in_col01, ‘%’) ;
END;
4. Transaction 용 프로시저 생성
CREATE PROCEDURE `Prc_TranTest_InError`
(
)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ”
BEGIN
DECLARE dbErr int default 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET dbErr = -1;
START TRANSACTION;
INSERT INTO TranTest SET col01 = ‘1234′;
INSERT INTO TranTest2 SET col012 = ‘1234′; //일부러 에러값을 내기위해 칼럼명을 다르게 적습니다.
IF dbErr < 0 THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
END;
5. PHP 를 이용하여 SELECT 및 입력하기
$mysqli = new mysqli(”localhost”, “USERID”, “USERPW”, “USERDB”);
if (mysqli_connect_error()) {
printf(”Connect Failed : %s\n”, mysqli_connect_error());
exit;
}
$mysqli->query(”set names utf8″);
//SELECT
if($qry = $mysqli->query(”Call Prc_TranTest_Select(’123′)”)) {
$rs = $qry->fetch_object();
echo $rs->col01;
}
//INSERT TranTest;
$mysqli->query(”Call Prc_TranTest_InError()”);
맞을꺼야 횽의 생일 선물 이었음 ..
일단 너무 고마워서 ㅠ.ㅠ; 열어보니
개인 정보 태그 | 압축 토큰 |
<contact-and-other/> | CAO |
<pseudo-analysis/> | PSA |
<contact required="opt-in"/> | CONi |
<other-recipient/> | OTR |
<ours/> | OUR |
<demographic/> | DEM |
<online/> | ONL |
범주 | 압축 토큰 | 설명 |
<physical/> | PHY | 연락처 또는 위치 정보 |
<online/> | ONL | 인터넷 상의 연락처 또는 위치 정보(예: 전자 메일 주소) |
<government/> | GOV | 정부에서 발급한 ID(예: 사회 보장 번호) |
<financial/> | FIN | 개별 재무 정보 |
용도 | 압축 토큰 | 설명 |
<customization/> | CUS | 사용자에 의해 명시적으로 요청된 사이트 수정 |
<individual-analysis/> | IVA | 개별 사용자와 관련될 수 있는 분석 |
<individual-decision/> | IVD | 사용자 기록에 기초한 동작 수행 |
<contact/> | CON | 개별 사용자에게 연락하는 데 사용할 수 있는 정보 |
<telemarketing/> | TEL | 전화 판촉에 사용할 수 있는 정보 |
<other-purposes/> | OTP | 다른 P3P 용도 이외의 기타 용도 |
수신인 | 압축 토큰 | 설명 |
<same/> | SAM | 일관된 관례에 따라 고유한 목적에 데이터를 사용하는 정식 항목 |
<delivery/> | DEL | 주어진 용도 이외에 목적에 데이터를 사용할 수 있는 배달 서비스를 수행하는 정식 항목 |
<other-recipient/> | OTR | 공급자에게 책임이 있지만 알려지지 않은 방법으로 데이터를 사용할 수 있는 항목 |
<unrelated/> | UNR | 공급자에게 알려지지 않은 방법으로 데이터를 사용하는 항목 |
<public/> | PUB | 공개 포럼 |
The other day I came across a weird security problem at work: While a system to customize a site's appearance worked fine in Firefox, storing the state kept failing in IE. Now, I'm not a big fan of these browser discussions and don't mind using either, but that error made me curious. I quickly found out that it was down to the company's security standard, which defaulted IE's privacy level to high-medium. This level doesn't allow third-party cookies for permanent storage, and as the whole site was running in a Frameset for a couple of days (thank you, domain-hogging cheapie-host), the cookies used were rightly considered third party.
They are allowed to be stored under this setting, though, when they come with a P3P (Platform for Privacy Preferences) policy. Microsoft offers a nice overview to what this is, but leaves you pretty much in the dark of how you actually get from A (Problem) to B (Solution). P3Ptoolbox.org, a website dedicated to P3P offers an all-embracing guide, but the sheer amount is more off-putting than encouraging.
P3P is a protocol designed to offer an "automated way for users to gain more control over the use of personal information on Web sites they visit", states the W3C. Policies are something that is used quite frequently, in the Flash and Java (J2EE) World, usually describing a set of permissions granted or revoked. P3P is an XML based policy that describes the scope or the way how the data in cookies is used. It consists of four logical parts:
If you look into tools for generating P3P policies, you'll find yourself in a land of darkness and badly designed websites with dollar signs. But there's light at the end of the tunnel: The IBM P3P Editor is free, being an executable jar it's crossplatform, and if you know what you're doing, it's really easy. So what do you have to do?
Let's say we set and read a cookie on the homepage that stores a unique ID for tracking reasons and retrieves preferences from the db on how the site is displayed (font size and regular/high-contrast layout, for example).
Open up the P3P editor, choose "create a blank policy", and you'll find a well categorized list of elements on the left, and an empty tree on the right.
Locate and drag the data elements matching your purpose from the list into the "new group" on the right. In our case that's:
Broad Categories --> unique identifier and
Dynamic Data --> http cookie
You can edit the group name, and you'll probably want to do it in real life situations that are more complex - in order to find grouped entries easier later on.
When you do so, you are also asked to put down an explanation to why the data is requested and you have to decide if "there is no reasonable way to link this data to the visitor's real-world identity." (check the help button). As users don't register on my site, they will be unique by identifier, but I won't be able to find out who they really are. The display data is anonymous anyway, so, tick the box here as well. Describe the reasons then on to the next step.
Make your way through the tabs, I will check "Site customisation" and "Anonymous user tracking", I offer an opt-out possibility for the site customisation, and uncheck pseudonymous decision-making, as I’m not tracking that. Recipient is just me, and as Retention I choose indefinitely.
To the right of the tabs in the lower part of the window is a properties button, click that to add all necessary data for the website, starting with a full contact information of the person/organisation responsible for the site.
Click on the next tab to enter a generic name for the policy and add an opt-out url (essentially a page where you can choose to get all cookies from your site deleted).
Make sure your language selection is the right one and add the url for your privacy policy on your website.
The Access-tab wants you to indicate what personal data the user can view to doublecheck what's stored on your site. In my case: no identified data is collected.
Next, let's eliminate that dispute warning: go to "Assurances", and add a dispute. I call it "all disputes" chose customer service as dispute remedy for "all disputes", with a link to contact-us, to reach the customer service.
Lastly, in the global properties, set the expiry date. I chose the same as the cookies lifetime, or up to a date when the cookie situation, and therefore the privacy policy, changes.
The easiest way to get rid of the must-haves is to eliminate one error after the next. Click the error tab to see them. If you have any other errors, fix them accordingly... it's most probably in your data group, or it’s a conflict between your data elements, the group and global properties.
All done? I had to add a category to my HTTP cookie. Now it looks like this:
Save it, and go to the final step: deploy your data. For that, you'll need to generate a reference file first. Here's one that fits my example - it directs to the P3P file in all cases (include \*).
<META xmlns="http://www.w3.org/2000/12/p3pv1"> <POLICY-REFERENCES> <POLICY-REF about="testsite_com.p3p"> <INCLUDE>\*</INCLUDE> <COOKIE-INCLUDE name="*" value="*" domain="*" path="*"/> </POLICY-REF> </POLICY-REFERENCES> </META>
All you have to do now, is:
Method | Code |
---|---|
HTML | <meta http-equiv="P3P" content="CP='NOI DSP NID TAIo PSAa OUR IND UNI OTC TST'"> |
PHP | Header("P3P: CP='NOI DSP NID TAIo PSAa OUR IND UNI OTC TST'") |
ASP | Response.AddHeader "P3P","CP='NOI DSP NID TAIo PSAa OUR IND UNI OTC TST'" |
JSP | Response.setHeader("P3P","CP='NOI DSP NID TAIo PSAa OUR IND UNI OTC TST'") |
ColdFusion | <cfheader name="P3P" value="CP='NOI DSP NID TAIo PSAa OUR IND UNI OTC TST'" /> |
Congratulations, you made through this dry and rocky path of an article, or alternatively you found the scrollbar overly useful. I've had my doubts while writing this, about how complex it should be, and decided to go for an overview with a simple A-Z example, as my key problem was piecing it together initially.
P3P doesn't end here though - there are many more possibilities, from setting up different policies for different parts of a website, to getting deeper into the personal data aspect (there's quite a difference in cookie handling with P3P when personal data is involved), to taking a closer look into the client side and the possibilities that P3P offers, which mostly aren't quite built into browsers yet.
The idea of P3P is a good one, but it's flawed, as it's so far based on honesty. If I used information differently than I stated in my P3P policy, how would the user ever know? If developers use half-hearted workarounds by simply adding a non-offensive P3P header, why would the user trust P3P? These are the first things that you'll ask yourself while spending time on this, but there's more elaborated critizism: the Electronic Privacy Information Center has assessed P3P and is not happy at all with it. So why do it? Given you do use cookies, 3 reasons come to mind, and they seem oddly close to web standards (looking forward to the comments):
0